/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{background:#eee;overflow-y:auto;height:100%;font-size:62.5%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body{background:#eee;height:100%;color:#000;line-height:1.5;text-align:left;word-wrap:break-word}button,html,input,select,textarea{font-family:Roboto,sans-serif}:focus,div:target,embed,object{outline:0 none}a{color:#033093;text-decoration:none}a,button,label,select{cursor:pointer}p{margin:0 0 2em}.wrapper{min-height:100%;overflow:hidden;position:relative;z-index:1;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start}.wrapper:before{content:'';background:#fff;max-width:1500px;width:100%;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;z-index:-10}.page_movie-mode .wrapper:after{content:'';background:rgba(0,0,0,.9);position:absolute;top:0;left:0;right:0;bottom:0;z-index:100}.hidden{clip:rect(0,0,0,0);position:absolute!important}.h1{margin:0 0 39px;padding:0;color:#000;font-size:50px;font-size:5rem;font-weight:500;letter-spacing:-.09px;line-height:1}@media screen and (max-width:1023px){.h1{font-size:40px;font-size:4rem;letter-spacing:-.07px}}@media screen and (max-width:767px){.h1{font-size:25px;font-size:2.5rem;letter-spacing:-.05px}}.h1 .h1__delimiter{color:#dadada}.h2{margin:0 0 .5em;padding:0;color:#000;font-size:30px;font-size:3rem;font-weight:400;line-height:1}.h3{margin:0 0 1em;padding:0;font-size:25px;font-size:2.5rem;line-height:1.04;font-weight:400}.h4{margin:0 0 .7em;padding:0;font-size:18px;font-size:1.8rem;font-weight:700}.h5{margin-bottom:132px;color:#fff;font-size:8.5rem;line-height:1;font-weight:400}.inner{width:100%;max-width:1500px;margin:0 auto;padding:72px 0 0;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;-webkit-box-ordinal-group:0;-ms-flex-order:0;order:0;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:auto;-ms-align-self:auto;-ms-flex-item-align:auto;align-self:auto}@media screen and (max-width:767px){.inner{padding-top:50px}}.link{color:inherit;text-decoration:none;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.link:hover{color:#fe0000}.logo__link{display:block;width:inherit;height:inherit}.logo_header{background:url(../img/logo.svg) no-repeat;width:57px;height:45px;position:absolute;top:14px;left:0;z-index:2;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1500px){.logo_header{left:30px}}@media screen and (max-width:767px){.logo_header{background-size:auto 36px;width:47px;height:36px;left:12px;top:7px}}.logo_footer{background:url(../img/rt.svg) no-repeat;width:30px;height:30px;position:absolute;top:153px;left:32px;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1023px){.logo_footer{margin:auto;top:351px;left:0;right:0}}.nav__list{margin:0;padding:0;list-style:none}.nav__item{display:inline-block;margin:0;padding:0;color:#fff;font-size:17px;font-size:1.7rem;vertical-align:top}@media screen and (max-width:1150px){.nav__item{display:block}}.nav__link{color:inherit;text-decoration:none;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.nav__link:hover{color:#fe0000}.nav_header{position:absolute;top:0;right:380px;z-index:1}@media screen and (max-width:1150px){.nav_header{clip:rect(0,1000em,1000em,0);height:72px;right:0;left:0;top:0}.nav_header:after{content:'';background:#000;position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.nav_header:before{content:'';background:#fff;-webkit-box-shadow:0 9px 0 #fff,0 18px 0 #fff;box-shadow:0 9px 0 #fff,0 18px 0 #fff;width:29px;height:2px;position:absolute;top:26px;right:29px;z-index:2}}@media screen and (max-width:767px){.nav_header{height:50px}.nav_header:before{top:16px;right:20px}}@media screen and (max-width:1150px){.nav_header.nav_opened .nav__list_header{visibility:visible;opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}}.nav__list_header{display:block;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1150px){.nav__list_header{background:#000;padding-bottom:5px;position:absolute;top:100%;right:0;left:0;visibility:hidden;opacity:0;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%)}}.nav__item_header{margin-left:15px;line-height:73px}@media screen and (max-width:1150px){.nav__item_header{margin:0;text-align:center}}@media screen and (max-width:767px){.nav__item_header{line-height:50px}}.nav__link_header{display:block;position:relative;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.nav__link_header:before{content:'';background:#63bd2b;height:4px;position:absolute;bottom:0;left:0;right:0;opacity:0;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.nav__link_header:hover{color:#63bd2b}.nav__link_header:hover:before{opacity:1}@media screen and (max-width:1150px){.nav__link_header{display:block;padding:5px 29px}}.nav_footer{position:absolute;top:33px;left:31px}@media screen and (max-width:1023px){.nav_footer{top:53px;right:31px}}.nav__item_footer{margin-right:20px}@media screen and (max-width:1023px){.nav__item_footer{display:block;margin:0;text-align:center}}@media screen and (max-width:1023px){.nav__link_footer{display:block;padding:5px 10px}}.nav_side{background:#fff;clip:rect(0,1000em,1000em,0);position:absolute;left:0;right:0;padding-left:21px;z-index:9}.main-page .nav_side:hover{-webkit-box-shadow:1px 1px 5px rgba(0,0,0,.5);box-shadow:1px 1px 5px rgba(0,0,0,.5)}@media screen and (max-width:768px){.main-page .nav_side:hover{-webkit-box-shadow:none;box-shadow:none}}@media screen and (max-width:768px){.nav_side{clip:rect(0,1000em,1000em,-1000em);position:absolute;top:0;bottom:0;right:0;left:0}.nav_side:after{content:'';background:#000;-webkit-box-shadow:0 5px 0 #000,0 10px 0 #000;box-shadow:0 5px 0 #000,0 10px 0 #000;width:18px;height:2px;margin:auto;position:absolute;top:0;bottom:10px;right:19px;z-index:5}.nav_side:before{background:#fff;content:attr(data-active-text);padding:23px 53px;display:block;position:relative;z-index:4;font-size:15px;font-size:1.5rem;color:#000;letter-spacing:0;line-height:1.13333333;text-align:right;white-space:nowrap}}@media screen and (max-width:767px){.nav_side:before{padding:19px 53px}}@media screen and (max-width:479px){.nav_side{height:55px;padding-left:0;top:auto;left:50%;right:auto;z-index:9;-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0)}}@media screen and (max-width:768px){.nav_side.nav_opened .nav__list_side{visibility:visible;opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}}@media screen and (max-width:479px){.nav_side.nav_opened .nav__list_side{-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0)}}.nav__list_side{margin:0;padding:0;list-style:none}@media screen and (max-width:768px){.nav__list_side~.h3,.nav__list_side~.nav__list_side,.nav__list_side~br{display:none}}@media screen and (max-width:768px){.nav__list_side{background:#fff;border-top:1px solid rgba(0,0,0,.1);padding:10px 0;position:absolute;top:100%;right:0;left:0;z-index:3;visibility:hidden;opacity:0;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%);-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}}@media screen and (max-width:479px){.nav__list_side{width:100vw;left:50%;right:auto;-webkit-transform:translate(-50%,-100%);-ms-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}}.nav__item_side{display:block;margin:0 0 11px;padding:0;color:#000;font-size:15px;font-size:1.5rem;line-height:1}@media screen and (max-width:768px){.nav__item_side{float:none;display:block;margin:0;font-size:15px;font-size:1.5rem;text-align:right;line-height:1.3}}@media screen and (max-width:479px){.nav__item_side{text-align:center}}.nav_side .nav__item_active{color:#5bbd1e}.nav__item_archive{color:#999}.nav__item_big{font-size:28px;font-size:2.8rem;letter-spacing:1px}@media screen and (max-width:768px){.nav__item_big{font-size:15px;font-size:1.5rem}}.nav__link_side{color:inherit;text-decoration:none}@media screen and (max-width:768px){.nav__link_side{display:block;padding:5px 19px}}.header{max-width:1500px;height:73px;margin:auto;position:fixed;top:-1px;left:0;right:0;z-index:10}.header:before{content:'';background:#000;position:absolute;top:0;bottom:0;left:-1000em;right:-1000em;z-index:-1}@media screen and (max-width:767px){.header{height:51px}}.content__head{border-bottom:1px solid rgba(0,0,0,.1);position:relative;padding:28px 30px 39px}.content__head .h1{margin:0}.content__head .card__movie-mode_movie{margin:0;position:absolute;top:50%;right:50px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:767px){.content__head .card__movie-mode_movie{right:21px}}.content__head .card__social_movie{position:absolute;top:50%;left:428px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:1023px){.content__head .card__social_movie{left:328px}}@media screen and (max-width:767px){.content__head .card__social_movie{display:none}}@media screen and (max-width:1023px){.content__head{padding:19px 17px 27px}}@media screen and (max-width:767px){.content__head{padding:16px 17px 19px}}.social__list{margin:0;padding:0;list-style:none}.social__item{display:inline-block;width:30px;height:30px;margin:0;padding:0;vertical-align:top}@media screen and (max-width:479px){.social__item_header{width:20px}}.social__link{background:no-repeat;display:block;width:inherit;height:inherit;position:relative;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.social__link:before{content:'';background:no-repeat 50% 50%;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0}.social__link:hover{opacity:.7}.social__link_header:before{width:24px;height:24px}.social__link_fb:before{background-image:url(../img/fb.svg)}.social__link_tw:before{background-image:url(../img/t.svg)}.social__link_vk:before{background-size:30px auto;width:30px;height:30px;background-image:url(../img/vk.svg)}@media screen and (max-width:479px){.social__link_vk:before{background-size:25px auto;width:25px;height:30px}}.social__link_yo:before{background-size:24px auto;background-image:url(../img/y.svg)}.social__link_ok:before{background-size:22px auto;background-image:url(../img/ok.svg)}@media screen and (max-width:479px){.social__link_ok:before{background-size:17px auto}}.social__link_tiktok:before{background-size:22px auto;left:-5px;background-image:url(../img/tiktok.svg)}@media screen and (max-width:479px){.social__link_tiktok:before{background-size:17px auto}}.social__link_rss:before{background-image:url(../img/rss.svg);background-size:20px auto;width:20px;height:20px}@media screen and (max-width:479px){.social__link_rss:before{background-size:16px auto}}.social__link_rutube:before{background-size:40px auto;background-image:url(../img/rutube.svg)}@media screen and (max-width:479px){.social__link_rutube:before{background-size:32px auto}}.social__link_telegram:before{background-size:40px auto;background-image:url(../img/telegram.svg);-webkit-filter:invert(1);filter:invert(1)}@media screen and (max-width:479px){.social__link_telegram:before{background-size:32px auto}}.social_header{position:absolute;top:20px;right:115px;z-index:2;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1150px){.social_header{right:190px}}@media screen and (max-width:767px){.social_header{top:10px}}@media screen and (max-width:479px){.social_header{right:145px}}.social_footer{position:absolute;top:31px;right:35px}@media screen and (max-width:1023px){.social_footer{top:268px;left:0;right:0;text-align:center}}@media screen and (max-width:1023px){.social__item_footer{margin:0 9px}}.social__link_footer:before{width:22px;height:22px}@media screen and (max-width:1023px){.social__link_footer:before{width:32px;height:32px}}.social__list_content{text-align:center}.social__item_content{width:40px;height:40px;margin:0 8px}.card__social-item_movie{width:30px;height:30px}.card__social-link_movie,.social__link_content{background-image:url(../img/color_social_ico.png)}.social__link_tw_content{background-position:0 -40px}.social__link_gg_content{background-position:0 -80px}.social__link_yo_content{background-position:0 -120px}.card__social-link_movie{background-size:30px auto}.card__social-link_tw_movie{background-position:0 -30px}.card__social-link_gg_movie{background-position:0 -60px}.card__social-link_yo_movie{background-position:0 -90px}.card__social_movie{float:left;padding:23px 0}@media screen and (max-width:580px){.card__social_movie{width:100%;text-align:center}}.card__social-item_movie{margin-right:4px}.test4_style{margin-right:10px}.promo{background:#000;width:100%;height:600px;overflow:hidden;position:relative;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:767px){.promo{height:260px}}@media screen and (max-width:479px){.promo{height:200px}}.promo__link{color:inherit;text-decoration:none;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.promo__link:hover{opacity:.7}.promo__list{margin:0;padding:0;list-style:none}.promo__item{margin:0;padding:0;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;visibility:hidden}.promo__item:hover .promo__title{opacity:.7}.promo__item_active,.promo__item_new-next,.promo__item_new-prev{opacity:1;visibility:visible;z-index:1}.promo__item_new-next,.promo__item_new-prev{z-index:2}.promo__img{height:100%;vertical-align:top;opacity:.5}.promo__background-link{z-index:2;display:block;position:absolute;width:100%;height:100%}.promo__media{z-index:1;background:#000;position:absolute;top:0;left:-1000em;right:-1000em;bottom:0;text-align:center}.promo__item_old-prev .promo__media{-webkit-animation:oldPrevMedia .5s ease both;animation:oldPrevMedia .5s ease both}.promo__item_new-prev .promo__media{-webkit-animation:newPrevMedia .5s ease both;animation:newPrevMedia .5s ease both}@media screen and (min-width:768px){.promo__item_new-prev .promo__context{-webkit-animation:newPrevContext .5s ease both .3s;animation:newPrevContext .5s ease both .3s}}@media screen and (max-width:767px){.promo__item_new-prev .promo__context{-webkit-animation:newPrevContext2 .5s ease both .3s;animation:newPrevContext2 .5s ease both .3s}}@-webkit-keyframes oldPrevMedia{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-100%)}}@keyframes oldPrevMedia{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes newPrevMedia{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes newPrevMedia{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes newPrevContext{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes newPrevMContext{0%{opacity:0}100%{opacity:1}}@keyframes newPrevMContext{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes newPrevContext2{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(-50%)}}@-webkit-keyframes newPrevMContext2{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}@keyframes newPrevMContext2{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}.promo__item_old-next .promo__media{-webkit-animation:oldNextMedia .5s ease both;animation:oldNextMedia .5s ease both}.promo__item_new-next .promo__media{-webkit-animation:newNextMedia .5s ease both;animation:newNextMedia .5s ease both}@media screen and (min-width:768px){.promo__item_new-next .promo__context{-webkit-animation:newNextContext .5s ease both .3s;animation:newNextContext .5s ease both .3s}}@media screen and (max-width:767px){.promo__item_new-next .promo__context{-webkit-animation:newNextContext2 .5s ease both .3s;animation:newNextContext2 .5s ease both .3s}}@-webkit-keyframes oldNextMedia{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(100%)}}@keyframes oldNextMedia{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes newNextMedia{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes newNextMedia{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes newNextContext{0%{opacity:0}100%{opacity:1}}@keyframes newNextContext{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes newNextContext2{0%{opacity:0}100%{opacity:1}}@keyframes newNextContext2{0%{opacity:0}100%{opacity:1}}.promo__context{pointer-events:none;z-index:3;width:660px;margin:auto;position:absolute;top:50%;left:0;right:0;text-align:center;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:768px){.promo__context{width:560px}}@media screen and (max-width:767px){.promo__context{width:452px}}@media screen and (max-width:479px){.promo__context{width:auto;padding:0 30px}}.promo__title{margin-bottom:39px;color:#fff;font-size:6.5rem;line-height:.94285714;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}@media screen and (max-width:768px){.promo__title{margin-bottom:30px;font-size:50px;font-size:5rem;line-height:1.1}}@media screen and (max-width:767px){.promo__title{font-size:30px;font-size:3rem}}@media screen and (max-width:479px){.promo__title{font-size:20px;font-size:2rem}}.promo__honor,.promo__premier{margin:15px 0 10px;color:#4fcd00;font-size:17px;font-size:1.7rem;line-height:.94285714;text-transform:uppercase}@media screen and (max-width:768px){.promo__honor,.promo__premier{font-size:25px;font-size:2.5rem;line-height:1.2}}@media screen and (max-width:767px){.promo__honor,.promo__premier{font-size:20px;font-size:2rem;line-height:1.25}}.promo__honor{color:#ff4500}.promo__category{margin-bottom:4px;color:#fff;font-size:17px;font-size:1.7rem;line-height:1.29411765}@media screen and (max-width:479px){.promo__category{font-size:15px;font-size:1.5rem}}.promo__category>.promo__link{pointer-events:auto}.promo__summary{color:#fff;font-size:17px;font-size:1.7rem;line-height:1.29411765}@media screen and (max-width:767px){.promo__summary{display:none}}.promo__next,.promo__prev{background:url(../img/promo_arrows_vertical.png) no-repeat;width:43px;height:43px;margin-top:-96px;position:absolute;top:50%;right:29px;z-index:2;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:767px){.promo__next,.promo__prev{background-image:url(../img/promo_arrows_horizontal.png);width:31px;height:31px;top:auto;bottom:19px;left:24px}}.promo__prev:hover{-webkit-transform:translate(0,-20%);-ms-transform:translate(0,-20%);transform:translate(0,-20%)}.promo__next{background-position:0 -43px;margin-top:53px}.promo__next:hover{-webkit-transform:translate(0,20%);-ms-transform:translate(0,20%);transform:translate(0,20%)}@media screen and (max-width:767px){.promo__next{background-position:0 -31px;left:auto;right:24px}}.promo__counter{position:absolute;top:50%;right:31px;z-index:2;-webkit-transform:translateY(-50%) rotate(-90deg);-ms-transform:translateY(-50%) rotate(-90deg);transform:translateY(-50%) rotate(-90deg);color:#fff;font-size:25px;font-size:2.5rem}@media screen and (max-width:767px){.promo__counter{top:auto;bottom:20px;left:50%;right:auto;font-size:15px;font-size:1.5rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}}.on-the-air{position:absolute;top:19px;left:69px;right:960px;z-index:2;margin-right:70px;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1500px){.on-the-air{left:99px}}@media screen and (max-width:1200px){.on-the-air{display:none}}.on-the-air__caption{color:#d52f10;font-size:13px;font-size:1.3rem;letter-spacing:1.08px;line-height:1.30769231}.on-the-air__title{position:relative;overflow:hidden;color:#a4a4a4;font-size:13px;font-size:1.3rem;letter-spacing:1.08px;line-height:1.30769231;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.on-the-air__link{color:inherit;text-decoration:none}.search_header{position:absolute;top:72px;right:0;left:0}@media screen and (max-width:1150px){.search_header{right:85px}}@media screen and (max-width:767px){.search_header{top:50px}}.search__btn_header{background:url(../img/search-white.svg) no-repeat 50% 50%;display:block;width:45px;height:72px;margin-left:auto;opacity:1;position:absolute;top:-72px;right:0;z-index:2;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.search__btn_header:hover{opacity:.7}@media screen and (max-width:767px){.search__btn_header{height:50px;top:-50px}}@media screen and (max-width:479px){.search__btn_header{right:-20px}}.search__context-wrapper_header{clip:rect(0,1000em,1000em,-1000em);position:absolute;top:0;left:0;right:0}.search__context_header{padding:38px 0;position:absolute;top:0;left:0;right:0;opacity:0;visibility:hidden;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%);-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.search__context_header:before{content:'';background:#fff;position:absolute;top:0;bottom:0;left:-1000em;right:-1000em;z-index:-1;-webkit-box-shadow:0 1px 5px rgba(0,0,0,.3);box-shadow:0 1px 5px rgba(0,0,0,.3)}@media screen and (max-width:1550px){.search__context_header{padding:38px}}@media screen and (max-width:1150px){.search__context_header{right:-70px}}.search_active .search__context_header{opacity:1;visibility:visible;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.search_active .search__close-btn_header{opacity:1;visibility:visible}.search__field{border:0;border-bottom:1px solid #d3d3d3;width:100%;padding:27px 40px 27px 0;font-size:30px;font-size:3rem;-webkit-box-sizing:border-box;box-sizing:border-box}.search__field:-moz-placeholder{opacity:1;color:#b5b5b5;font-style:normal;text-overflow:ellipsis;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease}.search__field::-moz-placeholder{opacity:1;color:#b5b5b5;font-style:normal;text-overflow:ellipsis;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease}.search__field::-webkit-input-placeholder{opacity:1;color:#b5b5b5;font-style:normal;text-overflow:ellipsis;-webkit-transition:all .3s ease;transition:all .3s ease}.search__field:-ms-input-placeholder{opacity:1;color:#b5b5b5;font-style:normal;text-overflow:ellipsis;-webkit-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.search__field:focus:-moz-placeholder{opacity:.3}.search__field:focus::-moz-placeholder{opacity:.3}.search__field:focus::-webkit-input-placeholder{opacity:.3}.search__field:focus:-ms-input-placeholder{opacity:.3}.search__submit-btn_content,.search__submit-btn_header{background:url(../img/search-black.svg) no-repeat 50% 50%;border:0;width:30px;height:35px;margin:auto;position:absolute;top:0;right:0;bottom:0;opacity:.3;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.search__submit-btn_content:hover,.search__submit-btn_header:hover{opacity:1}@media screen and (max-width:1550px){.search__submit-btn_content,.search__submit-btn_header{right:38px}}.search__close-btn_header{background:red url(../img/close-btn.png) no-repeat 50% 50%;width:59px;height:72px;position:absolute;top:-72px;right:-10px;z-index:3;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.search__close-btn_header:hover{background-position:50% 40%}@media screen and (max-width:1150px){.search__close-btn_header{right:-18px}}@media screen and (max-width:767px){.search__close-btn_header{height:50px;top:-50px}}.search-box{padding:15px 102px 0}@media screen and (max-width:1150px){.search-box{padding:15px 51px 0}}@media screen and (max-width:479px){.search-box{padding:15px 21px 0}}.search_content{margin-bottom:41px;position:relative}.search__submit-btn_content{right:0}.favorites{position:absolute;top:20px;right:60px;z-index:2;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1150px){.favorites{right:136px}}@media screen and (max-width:767px){.favorites{top:7px}}@media screen and (max-widtH:479px){.favorites{right:100px}}.favorites__btn{background:url(../img/favorite-white.svg) no-repeat 50% 50%;display:block;width:35px;height:35px}.favorites__counter{background:#fe0000;border-radius:50%;width:20px;height:20px;position:absolute;top:-3px;right:-3px;color:#fff;font-size:13px;font-size:1.3rem;line-height:1.53846154;text-align:center}.footer{background:#000;max-width:1500px;width:100%;padding-top:232px;margin:auto;position:relative;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;-webkit-box-ordinal-group:0;-ms-flex-order:0;order:0;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-align-self:auto;-ms-align-self:auto;-ms-flex-item-align:auto;align-self:auto}@media screen and (max-width:1023px){.footer{padding-top:630px}}.footer__organizations{margin:0 35px;padding:12px 0;border-top:1px solid #3c3c3c}.footer__organizations-title{margin-bottom:50px;position:relative;display:inline-block;font-family:"DIN Pro",Arial,sans-serif;font-size:11px;font-weight:500;font-style:normal;line-height:15px;color:#fff;text-align:left;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.footer__organizations-title::before{content:'';position:absolute;top:8px;right:-25px;display:block;width:10px;height:10px;border:1px solid #fff;border-bottom-color:transparent;border-left-color:transparent;background-color:#000;-webkit-transform:translateY(-10px) rotate(135deg);-ms-transform:translateY(-10px) rotate(135deg);transform:translateY(-10px) rotate(135deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media screen and (max-width:768px){.footer__organizations-title::before{top:100%;left:50%;-webkit-transform:translateX(-50%) rotate(135deg);-ms-transform:translateX(-50%) rotate(135deg);transform:translateX(-50%) rotate(135deg)}}@media screen and (max-width:768px){.footer__organizations-title{display:block;width:232px;margin:0 auto 30px;text-align:center}}.footer__organizations-title.is-open{color:#fff;margin-bottom:10px}@media screen and (max-width:768px){.footer__organizations-title.is-open{margin-bottom:30px}}.footer__organizations-title.is-open::before{-webkit-transform:translateY(-2px) rotate(-45deg);-ms-transform:translateY(-2px) rotate(-45deg);transform:translateY(-2px) rotate(-45deg);border-top-color:#fff;border-right-color:#fff;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media screen and (max-width:768px){.footer__organizations-title.is-open::before{-webkit-transform:translate(-6px,8px) rotate(-45deg);-ms-transform:translate(-6px,8px) rotate(-45deg);transform:translate(-6px,8px) rotate(-45deg)}}.footer__organizations-image{display:none;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.footer__organizations-image__wrapper{display:inline-block;width:100%;height:225px;background-image:url(/s/images/prohibited-organizations/txt1514-8.png);background-size:contain;background-repeat:no-repeat}@media screen and (max-width:1514px){.footer__organizations-image__wrapper{height:225px}}@media screen and (max-width:1436px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt1436-8.png);height:239px}}@media screen and (max-width:1240px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt1240-8.png);height:282px}}@media screen and (max-width:1190px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt1190-8.png);height:282px}}@media screen and (max-width:1090px){.footer__organizations-image__wrapper{height:262px}}@media screen and (max-width:1024px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt1024-8.png);height:323px}}@media screen and (max-width:940px){.footer__organizations-image__wrapper{height:300px}}@media screen and (max-width:850px){.footer__organizations-image__wrapper{height:275px}}@media screen and (max-width:800px){.footer__organizations-image__wrapper{height:255px}}@media screen and (max-width:768px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt768-8.png);height:407px}}@media screen and (max-width:730px){.footer__organizations-image__wrapper{height:375px}}@media screen and (max-width:660px){.footer__organizations-image__wrapper{height:345px}}@media screen and (max-width:600px){.footer__organizations-image__wrapper{height:325px}}@media screen and (max-width:568px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt568-8.png);height:525px}}@media screen and (max-width:520px){.footer__organizations-image__wrapper{height:475px}}@media screen and (max-width:480px){.footer__organizations-image__wrapper{height:425px}}@media screen and (max-width:436px){.footer__organizations-image__wrapper{height:405px}}@media screen and (max-width:410px){.footer__organizations-image__wrapper{background-image:url(/s/images/prohibited-organizations/txt320-8.png);height:1195px}}@media screen and (max-width:390px){.footer__organizations-image__wrapper{height:1095px}}@media screen and (max-width:370px){.footer__organizations-image__wrapper{height:1005px}}@media screen and (max-width:350px){.footer__organizations-image__wrapper{height:935px}}@media screen and (max-width:335px){.footer__organizations-image__wrapper{height:895px}}@media screen and (max-width:320px){.footer__organizations-image__wrapper{height:795px}}.footer__organizations-image.is-hidden{display:inline-block}.copyright{position:absolute;top:150px;left:73px;font-size:14px;font-size:1.4rem;color:rgba(255,255,255,.5);line-height:1.3;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1023px){.copyright{width:312px;margin:auto;top:397px;left:0;right:0;text-align:center}}.card-list{margin:0;padding:0;list-style:none}.card-list__overlay-link{z-index:2;position:absolute;top:0;left:0;width:100%;height:100%}.card-list__media{position:relative}.card-list__item{position:relative;margin:0;padding:0}.card-list__link,.card__link{color:inherit}.card-list__link:hover,.card__link:hover{color:#63bd28;-webkit-transition:color .3s ease;-o-transition:color .3s ease;transition:color .3s ease}.card-list_popular{font-size:0}.card-list__category,.card-list__content,.card-list__date,.card-list__heading{z-index:3;pointer-events:none}.card-list__link{pointer-events:auto}.card-list__item_popular{display:inline-block;width:33.3333%;height:0;padding-bottom:18.75%;position:relative;z-index:1;vertical-align:top;color:#fff;text-align:center;-webkit-transform:translateZ(0)}@media screen and (min-width:1025px){.card-list__item_popular:hover{color:#000}.card-list__item_popular:hover .card-list__content_popular,.card-list__item_popular:hover .card-list__favorite_movie,.card-list__item_popular:hover .card-list__favorite_popular{opacity:1;visibility:visible}.card-list__item_popular:hover .card-list__content_popular{-webkit-box-shadow:0 0 74px 0 rgba(0,0,0,.25);box-shadow:0 0 74px 0 rgba(0,0,0,.25)}.card-list__item_popular:hover .card-list__heading_popular{top:32%;font-size:18px;font-size:1.8rem;letter-spacing:1px;line-height:1.1}.card-list__item_popular:hover .card-list__honor_popular,.card-list__item_popular:hover .card-list__premier_popular{margin-bottom:2px;font-size:18px;font-size:1.8rem}.card-list__item_popular:hover .card-list__img_popular{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.card-list__item_popular:hover .card-list__date_popular{opacity:0;visibility:hidden}}@media screen and (max-width:1199px){.card-list__item_popular{width:50%;padding-bottom:36.64772727%}}@media screen and (max-width:767px){.card-list__item_popular{height:auto;padding-bottom:20px;color:#000}}@media screen and (max-width:479px){.card-list__item_popular{display:block;width:auto}}.card-list__content_popular{background:#fff;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.card-list__media_popular{background:#000;overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}@media screen and (max-width:767px){.card-list__media_popular{overflow:hidden;position:relative;height:0;margin-bottom:12px;padding-bottom:73.29545455%}}@media screen and (max-width:479px){.card-list__media_popular{padding-bottom:56.25%}}.card-list__img_popular{width:100%;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;vertical-align:top;opacity:.4;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:1199px){.card-list__img_popular{height:100%;width:unset;left:-15%}}@media screen and (max-width:479px){.card-list__img_popular{left:0}}@media screen and (max-width:767px){.card-list__img_popular{opacity:1}}.card-list__item_group_popular .card-list__img_popular{width:50%;height:50%}.card-list__item_group_popular .card-list__img_popular:nth-child(1){right:auto;bottom:auto}.card-list__item_group_popular .card-list__img_popular:nth-child(2){left:auto;bottom:auto}.card-list__item_group_popular .card-list__img_popular:nth-child(3){left:auto;top:auto}.card-list__item_group_popular .card-list__img_popular:nth-child(4){right:auto;top:auto}.card-list__category_popular{position:absolute;top:8.5%;left:20px;right:20px;color:inherit;font-size:15px;font-size:1.5rem;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:768px){.card-list__category_popular{font-size:20px;font-size:2rem}}@media screen and (max-width:767px){.card-list__category_popular{padding:0 15px;position:relative;top:0;left:0;right:0;font-size:15px;font-size:1.5rem}}.card-list__heading_popular{position:absolute;top:51%;left:20px;right:20px;color:inherit;font-size:26px;font-size:2.6rem;line-height:1.1;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:767px){.card-list__heading_popular{padding:3px 15px 9px;position:relative;top:0;left:0;right:0;font-size:20px;font-size:2rem;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}}.card-list__date_popular{position:absolute;bottom:8.5%;left:20px;right:20px;color:inherit;font-size:15px;font-size:1.5rem;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:767px){.card-list__date_popular{position:relative;bottom:0;left:0;right:0;opacity:.5;font-size:12px;font-size:1.2rem}}.card-list__favorite_movie,.card-list__favorite_popular,.card-list__favorite_programs{position:absolute;top:10px;right:10px;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:4}.card-list__item_favorite .card-list__favorite_movie,.card-list__item_favorite .card-list__favorite_popular,.card-list__item_favorite .card-list__favorite_programs{opacity:1;visibility:visible}@media screen and (min-width:1025px){.card-list__favorite_movie:after,.card-list__favorite_popular:after,.card-list__favorite_programs:after{content:'Добавить в избранное';background:#fff;border:1px solid #000;border-right:0;border-radius:6px 0 0 6px;padding:0 10px;margin-right:-6px;position:absolute;top:0;right:100%;font-size:15px;font-size:1.5rem;line-height:2.33333333;white-space:nowrap;z-index:2;opacity:0;visibility:hidden}.card-list__item_favorite .card-list__favorite_movie:after,.card-list__item_favorite .card-list__favorite_popular:after,.card-list__item_favorite .card-list__favorite_programs:after{content:'Удалить из избранного';background:#ff3c00;border-color:#ff3c00;color:#fff}.card-list__favorite_movie:hover:after,.card-list__favorite_popular:hover:after,.card-list__favorite_programs:hover:after{opacity:1;visibility:visible}}@media (max-width:767px){.card-list__favorite_movie,.card-list__favorite_popular,.card-list__favorite_programs{opacity:1;visibility:visible}}.card-list__summary_popular{overflow:hidden;position:absolute;top:50%;bottom:13%;left:28px;right:28px;font-size:14px;font-size:1.4rem;color:#000;line-height:1.4}.card-list__summary_popular:before{content:'';background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyNTUsMjU1LDI1NSkiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0icmdiKDI1NSwyNTUsMjU1KSIgc3RvcC1vcGFjaXR5PSIxIi8+PC9saW5lYXJHcmFkaWVudD48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2xlc3NoYXQtZ2VuZXJhdGVkKSIgLz48L3N2Zz4=);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(#fff));background-image:-o-linear-gradient(top,rgba(255,255,255,0),#fff);background-image:linear-gradient(to bottom,rgba(255,255,255,0),#fff);height:15px;position:absolute;bottom:0;left:0;right:0}.card-list__honor_popular,.card-list__premier_popular{margin-bottom:8px;color:#4fcd00;font-size:17px;font-size:1.7rem;text-transform:uppercase}@media screen and (max-width:767px){.card-list__honor_popular,.card-list__premier_popular{font-size:18px;font-size:1.8rem}}.card-list__item_programs{border-top:1px solid rgba(0,0,0,.1);overflow:hidden;position:relative}.card-list__item_programs:after{clear:both;content:'';display:table}.card-list__item_programs:first-child{border:0}@media screen and (min-width:1025px){.card-list__item_programs:hover .card-list__favorite_movie,.card-list__item_programs:hover .card-list__favorite_programs{opacity:1;visibility:visible}}.card-list__item_programs p{margin-bottom:.8em}.card-list__media_programs{float:left;width:37%;position:relative}@media screen and (max-width:479px){.card-list__media_programs{float:none;width:auto}}.card-list__image_programs{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.card-list__img_programs{width:100%;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0}.card-list__context_programs{padding:1.9% 2.5%;overflow:hidden}@media screen and (max-width:479px){.card-list__context_programs{padding:3% 3% 5%}}.card-list__category_programs{margin-bottom:16px;color:#000;font-size:15px;font-size:1.5rem;line-height:1;position:relative;z-index:3}@media screen and (max-width:767px){.card-list__category_programs{font-size:15px;font-size:1.5rem}}@media screen and (max-width:479px){.card-list__category_programs{text-align:center}}.card-list__heading_programs{margin-bottom:12px;font-size:34px;font-size:3.4rem;color:#000;line-height:1.2}@media screen and (max-width:1330px){.card-list__heading_programs{font-size:27px;font-size:2.7rem}}@media (max-width:1199px){.card-list__heading_programs{margin-bottom:0}}@media screen and (max-width:1023px){.card-list__heading_programs{font-size:23px;font-size:2.3rem}}@media screen and (max-width:900px){.card-list__heading_programs{font-size:20px;font-size:2rem}}@media screen and (max-width:600px){.card-list__heading_programs{font-size:18px;font-size:1.8rem}}@media screen and (max-width:479px){.card-list__heading_programs{margin-bottom:8px;text-align:center}}.card-list__date_programs{margin-left:16px;color:#9e9e9e;font-size:15px;font-size:1.5rem;line-height:1}@media screen and (max-width:479px){.card-list__date_programs{text-align:center}}.card-list__summary_programs{margin-bottom:12px;color:#000;font-size:15px;font-size:1.5rem;line-height:1.4}.card-list__summary_programs p:last-child,.card-list__summary_programs:last-child{margin-bottom:0}@media (max-width:1199px){.card-list__summary_programs{display:none}}.card-list__favorite-btn_movie,.card-list__favorite-btn_popular{background:#fff;border:1px solid #bebebe;border-radius:8px;display:block;width:35px;height:35px;position:relative;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.card-list__favorite-btn_movie:before,.card-list__favorite-btn_popular:before{content:'';background:url(../img/favorite-black.svg) no-repeat 50% 50%;background-size:22px 23px;position:absolute;top:0;left:0;right:0;bottom:0;opacity:.3;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}:hover>.card-list__favorite-btn_movie,:hover>.card-list__favorite-btn_popular{border-color:#333}:hover>.card-list__favorite-btn_movie:before,:hover>.card-list__favorite-btn_popular:before{opacity:1}.card-list__item_favorite .card-list__favorite-btn_movie,.card-list__item_favorite .card-list__favorite-btn_popular{background:#ff3c00;border-color:#ff3c00}.card-list__item_favorite .card-list__favorite-btn_movie:before,.card-list__item_favorite .card-list__favorite-btn_popular:before{background-image:url(../img/favorite.svg);background-size:19px 19px;opacity:1}.card-list__item_favorite .card-list__favorite-btn_movie:after,.card-list__item_favorite .card-list__favorite-btn_popular:after{content:'';background:url(../img/favorite-del-white.svg) no-repeat 50% 50%;background-size:22px 23px;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}:hover>.card-list__item_favorite .card-list__favorite-btn_movie:before,:hover>.card-list__item_favorite .card-list__favorite-btn_popular:before{opacity:0}:hover>.card-list__item_favorite .card-list__favorite-btn_movie:after,:hover>.card-list__item_favorite .card-list__favorite-btn_popular:after{opacity:1}.card_movie .jw-controlbar{display:block}.card__navi_movie{border-bottom:1px solid #e9e9e9;padding:0 144px;position:relative;opacity:0;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}@media screen and (max-width:767px){.card__navi_movie{padding:0 55px}}.card__navi_movie-without-slider{opacity:1;padding:0}@media screen and (min-width:1025px){.card__navi_movie-without-slider.fixed{background:#fff;width:100%;max-width:1500px;margin:auto;position:fixed;top:72px;left:0;right:0;z-index:9}.card__navi_movie-without-slider.fixed+*{margin-top:67px}}@media screen and (max-width:767px){.card__navi_movie-without-slider{padding:0}}.card__navi_active{opacity:1}.card__navi-context_movie{overflow:hidden;position:relative}.card__navi-next_movie,.card__navi-prev_movie{background:#fff url(../img/arrow-left.png) no-repeat 50% 50%;border-right:1px solid #e9e9e9;width:144px;position:absolute;top:0;bottom:0;left:0;z-index:1}@media screen and (max-width:767px){.card__navi-next_movie,.card__navi-prev_movie{width:55px}}.card__navi-next_movie{background-image:url(../img/arrow-right.png);border:0;border-left:1px solid #e9e9e9;left:auto;right:0}.card__navi-list_movie{display:table;width:100%;table-layout:fixed;margin:0;padding:0;list-style:none}.card__navi_movie_animate{-webkit-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.card__navi-item_movie{border-left:1px solid #e9e9e9;display:table-cell;width:20%;margin:0;padding:0;font-size:16px;font-size:1.6rem;color:#717171;text-align:center;line-height:66px}.card__navi_movie-without-slider .card__navi-item_movie{line-height:1.2}.card__navi-link_movie{display:block;height:66px;position:relative;color:inherit;text-align:center;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;-webkit-box-sizing:border-box;box-sizing:border-box}.card__navi_movie-without-slider .card__navi-link_movie{padding:14px 0}.card__navi-link_movie:hover{color:#000}span.card__navi-link_movie{opacity:.5}span.card__navi-link_movie:hover{color:inherit}@media screen and (max-width:1024px){.card__navi-link-text_movie{display:none}}.card__navi-link-text-date_movie{display:block}@media screen and (max-width:767px){.card__navi-link-text-date_movie{font-size:12px;font-size:1.2rem}}@media screen and (max-width:480px){.card__navi-link-text-date_movie{font-size:10px;font-size:1rem}}@media screen and (min-width:1025px){.card__navi-link-text-short_movie{display:none}}.card__navi-link_active_movie{color:#63bd2b;font-weight:700}.card__navi-link_active_movie:before{content:'';background:url(../img/triangle.png) no-repeat;display:inline-block;width:13px;height:12px;margin-right:6px}.card__navi_movie-without-slider .card__navi-link_active_movie:before{display:none}.card__navi-link_active_movie:after{content:'';background:#63bd2b;height:4px;position:absolute;top:0;left:0;right:0}.card__media_movie{height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.page_movie-mode .card__media_movie{z-index:101}.card__double-tap-area{position:absolute;top:0;bottom:32px;width:30%}.card__double-tap-area--left{left:0}.card__double-tap-area--right{right:0}.card__media-img_movie{min-width:100%;min-height:100%;position:absolute;top:0;left:0}.card__media-play-btn_movie{background:url(../img/play.png) no-repeat;width:96px;height:77px;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.card__panel_movie{border-bottom:1px solid #eee;padding:0 30px;position:relative}@media screen and (max-width:1023px){.card__panel_movie{padding:0 20px}}@media screen and (max-width:479px){.card__panel_movie{padding:0 5px}}.card__panel_movie:after{content:'';clear:both;display:table}.card__panel_movie .h1{float:left;margin:0 40px 0 0;font-size:40px;font-size:4rem;line-height:72px}@media screen and (max-width:479px){.card__panel_movie{text-align:center}}.card__heading_movie{margin-bottom:36px;font-size:50px;font-size:5rem;color:#000;letter-spacing:-.09px;line-height:1}@media screen and (max-width:767px){.card__heading_movie{margin-bottom:15px;font-size:25px;font-size:2.5rem;color:#000;letter-spacing:-.05px}}.card__context_movie{border-bottom:1px solid #eee;padding:30px}@media screen and (max-width:1023px){.card__context_movie{padding:20px}}.card__summary_movie{font-size:18px;font-size:1.8rem;color:rgba(0,0,0,.89);line-height:27px}@media screen and (max-width:767px){.card__summary_movie{font-size:16px;font-size:1.6rem;line-height:1.5}}.card__category_movie{float:left;width:21%;padding:15px 0;font-size:17px;font-size:1.7rem;color:#000;line-height:1.29411765}@media screen and (max-width:1023px){.card__category_movie{width:50%;padding:0 0 15px}}@media screen and (max-width:479px){.card__category_movie{float:none;width:auto;padding:0 0 15px}}.card__context-in_movie{overflow:hidden;padding:0 60px 0 0}@media screen and (max-width:1023px){.card__context-in_movie{clear:both;padding:0;overflow:visible}}.card__info_movie{float:right;width:21%;padding:15px 0;text-align:right}@media screen and (max-width:1023px){.card__info_movie{width:50%;padding:0 0 15px;text-align:left}}@media screen and (max-width:479px){.card__info_movie{float:none;width:auto}}.card__count-comments_movie{background:url(../img/comments.svg) no-repeat 0 50%;background-size:16px 16px;display:inline-block;padding-left:21px;color:#000;font-size:13px;font-size:1.3rem;line-height:1.23076923}.card__count-views_movie{background:url(../img/views.svg) no-repeat 0 50%;background-size:17px 9px;display:inline-block;margin-left:15px;padding-left:21px;color:#000;font-size:13px;font-size:1.3rem;line-height:1.23076923}.card__count-date_movie{display:inline-block;margin-left:15px;color:#000;font-size:13px;font-size:1.3rem;line-height:1.23076923}.card__tags_movie{padding:50px 0 0}@media screen and (max-width:767px){.card__tags_movie{padding:15px 0 0}}.card__tags-link_movie{color:inherit;text-decoration:none;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.card__tags-link_movie:hover{color:red}.card__tags-heading_movie{display:inline-block;color:#000;font-size:17px;font-size:1.7rem;line-height:1.29411765}.card__tags-item_movie{display:inline-block;margin-left:9px;color:rgba(0,0,0,.5);font-size:17px;font-size:1.7rem;line-height:1.29411765}@media screen and (max-width:767px){.card__tags-item_movie{margin-bottom:9px}}.card__h3_movie{margin:40px 0;text-align:center}@media screen and (max-width:767px){.card__h3_movie{margin:20px 0;font-size:20px;font-size:2rem}}.card__media-context{display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;padding-top:7px}@media (max-width:900px){.card__media-context{padding:0 20px}}.card_honor{height:418px;margin-bottom:40px;padding:0 30px 1px 0;position:relative;z-index:1;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-sizing:border-box;box-sizing:border-box}@media screen and (max-width:900px){.card_honor{height:auto;margin:0;padding:20px 0;-webkit-box-direction:normal;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;border-top:1px solid #eee}}.card__media_honor{background:no-repeat 50% 50%;background-size:cover;width:500px;min-width:500px;height:418px;margin-right:48px;position:relative}@media (max-width:900px){.card__media_honor{width:100%;height:0;min-width:100%;margin:0;margin-bottom:20px;padding-bottom:100%;position:relative}}.card__media_honor:before{content:'';width:100px;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(#fff));background:-o-linear-gradient(left,rgba(255,255,255,0),#fff);background:linear-gradient(to right,rgba(255,255,255,0),#fff);position:absolute;top:0;right:-1px;bottom:0}@media (max-width:900px){.card__media_honor:before{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(#fff));background:-o-linear-gradient(top,rgba(255,255,255,0),#fff);background:linear-gradient(to bottom,rgba(255,255,255,0),#fff);height:100px;width:auto;left:0;top:auto;bottom:-1px}}.card__heading_honor{margin-bottom:24px;font-size:40px;font-size:4rem;line-height:1.2;color:inherit;font-weight:600;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}@media screen and (max-width:1279px){.card__heading_honor{font-size:42px;font-size:4.2rem}}@media screen and (max-width:1024px){.card__heading_honor{font-size:34px;font-size:3.4rem}}@media screen and (max-width:768px){.card__heading_honor{font-size:40px;font-size:4rem}}@media screen and (max-width:767px){.card__heading_honor{font-size:35px;font-size:3.5rem}}@media screen and (max-width:479px){.card__heading_honor{font-size:30px;font-size:3rem}}.card__summary-wrapper_honor{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.card__summary_honor{margin-bottom:27px;overflow:hidden;position:relative;max-width:890px;font-size:18px;font-size:1.8rem;color:inherit;line-height:1.5}@media screen and (max-width:1024px){.card__summary_honor{font-size:16px;font-size:1.6rem}}@media screen and (max-width:900px){.card__summary_honor{margin-bottom:20px}}@media screen and (max-width:767px){.card__summary_honor{display:none}}.card__medal-wrapper_honor{display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin:0 -30px;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}@media screen and (max-width:1279px){.card__medal-wrapper_honor{margin:0 -20px}}@media screen and (max-width:1100px){.card__medal-wrapper_honor{margin:0;-webkit-box-direction:normal;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}}.card__medal_honor{width:50%;max-width:50%;padding:0 30px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-pack:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (max-width:1279px){.card__medal_honor{padding:0 20px}}@media screen and (max-width:1100px){.card__medal_honor{width:100%;max-width:100%;padding:20px 0}.card__medal_honor:last-child{padding-bottom:0}}.card__medal_honor:nth-child(2):before{content:'';border-left:1px solid #eee;position:absolute;top:0;left:-10px;bottom:0}@media screen and (max-width:1279px){.card__medal_honor:nth-child(2):before{left:-5px}}@media screen and (max-width:1100px){.card__medal_honor:nth-child(2):before{border:0;border-top:1px solid #eee;left:0;bottom:auto;right:0}}@media screen and (max-width:900px){.card__medal_honor:nth-child(2):before{border:0}}@media screen and (max-width:900px){.card__medal_honor{position:relative;bottom:0;left:0;right:0}}.card__medal-media_honor{float:left;margin-right:24px;position:relative}@media screen and (max-width:1439px){.card__medal-media_honor{margin-right:15px;height:60px}}@media screen and (max-width:1100px){.card__medal-media_honor{width:100px;max-width:100px;min-width:100px;height:80px;text-align:center}}@media screen and (max-width:767px){.card__medal-media_honor{margin-right:12px}}.card__medal-media-img_honor{max-height:90px;vertical-align:top}@media screen and (max-width:1439px){.card__medal-media-img_honor{max-height:60px}}@media screen and (max-width:1100px){.card__medal-media-img_honor{max-width:90%;max-height:90%;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0}}.card__medal-category_honor{margin-bottom:12px;font-size:22px;font-size:2.2rem;color:inherit;line-height:30px;font-weight:500}@media screen and (max-width:1439px){.card__medal-category_honor{font-size:18px;font-size:1.8rem}}@media screen and (max-width:767px){.card__medal-category_honor{padding-top:20px;font-size:20px;font-size:2rem;letter-spacing:-.04px}}.card__medal-name_honor{font-size:14px;font-size:1.4rem;color:grey;line-height:1.3}.card-list_movie{margin:-30px}@media screen and (max-width:1023px){.card-list_movie{margin:-20px}}.card-list__item_movie{border-top:1px solid rgba(0,0,0,.1);padding-left:15%;position:relative}.card-list__item_movie:after{clear:both;content:'';display:table}.card-list__item_movie:first-child{border:0}@media screen and (max-width:479px){.card-list__item_movie{padding-left:88px}}.card-list__item_movie:hover .card-list__favorite_movie{opacity:1;visibility:visible}@media screen and (max-width:767px){.card-list__item_movie-active:before{content:'';background:#63bd2b;width:8px;position:absolute;top:0;left:0;bottom:0}}@media screen and (max-width:767px){.card-list__item_movie-active .card-list__time_movie:after{content:'В ЭФИРЕ';display:block;font-size:10px;font-size:1rem;color:#63bd2b;letter-spacing:.3px;font-weight:700}}.card-list__item_movie-active .card-list__image:before{content:'';background:rgba(0,0,0,.6);position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.card-list__item_movie-active .card-list__media_movie:before{content:'';background:#63bd2b;width:8px;position:absolute;top:0;left:-8px;bottom:0}.card-list__item_movie-active .card-list__media_movie:after{content:'В ЭФИРЕ';position:absolute;top:50%;left:0;right:0;z-index:2;color:#fff;font-size:30px;font-size:3rem;letter-spacing:1px;font-weight:700;line-height:1;text-align:center;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}.card-list__media_movie{float:left;width:37%;position:relative}@media screen and (max-width:767px){.card-list__media_movie{display:none}}.card-list__image_movie{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.card-list__img_movie{width:100%;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0}.card-list__context_movie{padding:2% 2.5%;overflow:hidden}@media screen and (max-width:767px){.card-list__context_movie{padding:5% 2.5%}}.card-list__category_movie{margin-bottom:5px;color:#000;font-size:20px;font-size:2rem;line-height:1}@media screen and (max-width:767px){.card-list__category_movie{font-size:15px;font-size:1.5rem}}.card-list__item:hover .card-list__heading .card-list__link{color:#63bd2b}.card-list__heading_movie{margin-bottom:12px;font-size:38px;font-size:3.8rem;color:#000;line-height:1.2;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.card-list__link:hover .card-list__heading_movie{color:#63bd2b}@media screen and (max-width:767px){.card-list__heading_movie{font-size:20px;font-size:2rem}}.card-list__date_movie{color:rgba(0,0,0,.3);font-size:15px;font-size:1.5rem;line-height:1}.card-list__summary_movie{margin-bottom:12px;color:#000;font-size:15px;font-size:1.5rem;line-height:1.4}@media (max-width:1199px){.card-list__summary_movie{display:none}}.card-list__time_movie{padding:2% 0 0;position:absolute;top:0;left:3%;font-size:20px;font-size:2rem;color:#000;font-weight:700}@media screen and (max-width:767px){.card-list__time_movie{padding-top:5%;left:5%}}.card-list__title{margin:0 -10px}.more{background:#1c3c6a;position:relative}.more__btn{background:#1c3c6a;display:block;padding:26px 0;font-size:20px;font-size:2rem;color:#fff;letter-spacing:1px;line-height:1.15;text-align:center;text-decoration:none;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.more__btn:hover{background:#434343}@media screen and (max-width:768px){.more__btn{padding:19px 0}}.subscribe{background:gold;padding:4% 0;position:relative;text-align:center}@media screen and (max-width:479px){.subscribe{padding:18px 0 34px}}.subscribe__heading{width:60%;margin:0 auto 33px;color:#000;font-size:28px;font-size:2.8rem;line-height:1.32142857}@media screen and (max-width:767px){.subscribe__heading{width:auto;margin-bottom:20px;padding:0 15px;font-size:22px;font-size:2.2rem;line-height:1.27272727}}.subscribe__form{width:422px;height:40px;margin:0 auto 33px;padding-right:122px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}@media screen and (max-width:767px){.subscribe__form{margin-bottom:26px}}@media screen and (max-width:479px){.subscribe__form{width:auto;height:auto;margin:0 15px 32px;padding-right:0}}.subscribe__field{background:#fff url(../img/subscribe.png) no-repeat 13px 50%;border:0;width:100%;padding:12px 12px 11px 41px;font-size:14px;font-size:1.4rem;color:#000;letter-spacing:.1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.subscribe__field:-moz-placeholder{opacity:1;color:#000;font-style:normal;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease}.subscribe__field::-moz-placeholder{opacity:1;color:#000;font-style:normal;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease}.subscribe__field::-webkit-input-placeholder{opacity:1;color:#000;font-style:normal;-webkit-transition:all .3s ease;transition:all .3s ease}.subscribe__field:-ms-input-placeholder{opacity:1;color:#000;font-style:normal;-webkit-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.subscribe__field:focus:-moz-placeholder{opacity:.3}.subscribe__field:focus::-moz-placeholder{opacity:.3}.subscribe__field:focus::-webkit-input-placeholder{opacity:.3}.subscribe__field:focus:-ms-input-placeholder{opacity:.3}.subscribe__btn{background:#000;border:0;width:122px;height:40px;position:absolute;top:0;bottom:0;right:0;font-size:14px;font-size:1.4rem;color:#fff;letter-spacing:.1px}@media screen and (max-width:479px){.subscribe__btn{position:relative;width:100%}}.cols{display:table;width:100%;max-height:400px}.cols__side{display:table-cell;overflow:hidden;position:relative;vertical-align:top;width:15%;min-width:205px;min-height:56px;padding:21px;-webkit-box-sizing:border-box;box-sizing:border-box}.cols__side:before{content:'';background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyNTUsMjU1LDI1NSkiIHN0b3Atb3BhY2l0eT0iLjMiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9InJnYigyNTUsMjU1LDI1NSkiIHN0b3Atb3BhY2l0eT0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNsZXNzaGF0LWdlbmVyYXRlZCkiIC8+PC9zdmc+);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.3)),to(#fff));background-image:-o-linear-gradient(top,rgba(255,255,255,.3),#fff);background-image:linear-gradient(to bottom,rgba(255,255,255,.3),#fff);height:50px;position:absolute;bottom:0;left:0;right:0;z-index:2}@media screen and (max-width:768px){.cols__side:before{display:none}}.cols__side:hover{overflow:visible}.cols__side:hover .nav__list_side{z-index:2}.cols__side .h3{margin-bottom:.6em}@media screen and (max-width:768px){.cols__side{border-bottom:1px solid rgba(0,0,0,.1);display:block;width:auto;padding:18px;overflow:visible;position:relative}.cols__side:after{content:'';clear:both;display:table}.cols__side .h3{float:left;margin:0;position:relative;z-index:5}}@media screen and (max-width:767px){.cols__side{padding:18px}.cols__side .h3{font-size:20px;font-size:2rem}}@media screen and (max-width:479px){.cols__side .h3{margin-bottom:2em;float:none;text-align:center}}.cols__section{display:table-cell;vertical-align:top}@media screen and (max-width:768px){.cols__section{display:block}}.comments{padding:49px 20px;text-align:center}.comments__heading{text-align:center}.comments__context{display:inline-block}.clear-playlist{position:absolute;top:50%;right:39px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:768px){.clear-playlist{right:20px}}@media screen and (max-width:767px){.clear-playlist{right:5px}}.clear-playlist__btn{border:1px solid rgba(216,216,216,.33);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:4px;display:inline-block;height:28px;padding:0 9px;color:rgba(0,0,0,.33);font-size:14px;font-size:1.4rem;font-weight:500;line-height:2;text-decoration:none;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.clear-playlist__btn:hover{border-color:red;color:red}.about{padding:0 12.8%;color:#000;font-size:18px;font-size:1.8rem;line-height:1.4}@media screen and (max-width:1200px){.about{padding:0 30px}}@media screen and (max-width:1024px){.about{font-size:17px;font-size:1.7rem;line-height:1.47058824}}@media screen and (max-width:1023px){.about{padding:0 17px}}.about p{margin-bottom:1em}.about:after{clear:both;content:'';display:table}.about__channels{margin:0;padding:0;list-style:none}.about__channels-item{background:#f7f4f0;display:inline-block;vertical-align:top;margin:0 16px 24px 0;padding:0 32px;font-size:22px;font-size:2.2rem;line-height:64px}@media (max-width:767px){.about__channels-item{margin:0 12px 18px 0;padding:0 25px;font-size:18px;font-size:1.8rem;line-height:55px}}.about__section{padding:4% 0}@media screen and (max-width:1023px){.about__section{float:none;width:auto;padding:17px 0}}.about__h3{margin:70px 0 30px;font-size:28px;font-size:2.8rem;line-height:1.3}@media (max-width:767px){.about__h3{font-size:24px;font-size:2.4rem}}.ndash-list{margin:0 0 20px;padding:0 0 0 29px;list-style:none}.ndash-list__item{margin:18px 0 0;padding:0 0 0 14px;position:relative}.ndash-list__item:first-child{margin:0}.ndash-list__item:before{content:'';background:#000;width:8px;height:2px;position:absolute;top:.7em;left:0}.ndash-list_error{margin-bottom:100px}@media screen and (max-width:767px){.ndash-list_error{margin-bottom:20px}}.ndash-list__item_error{margin:0}.rules{width:69%;padding:7%;font-size:18px;font-size:1.8rem;line-height:1.5}@media screen and (max-width:1200px){.rules{padding:30px}}@media screen and (max-width:1023px){.rules{width:auto;padding:17px}}.rules p{margin-bottom:1em}.sorting-params{position:absolute;top:50%;right:44px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:768px){.sorting-params{right:22px}}@media screen and (max-width:768px){.sorting-params{position:relative;top:0;right:0;-webkit-transform:none;-ms-transform:none;transform:none}}.sorting-params__item{display:inline-block;margin-left:34px;font-size:15px;font-size:1.5rem}.sorting-params__item:first-child{margin-left:0}@media screen and (max-width:768px){.sorting-params__item{padding-top:16px}}@media screen and (max-width:360px){.sorting-params__item{display:block;margin-left:0}}.contacts:after{clear:both;content:'';display:table}.contacts__info{float:left;width:45%;padding:85px 30px 85px 100px;-webkit-box-sizing:border-box;box-sizing:border-box}@media screen and (max-width:1200px){.contacts__info{padding:30px}}@media screen and (max-width:1023px){.contacts__info{padding:20px}}@media screen and (max-width:767px){.contacts__info{float:none;width:auto}}.contacts__map{float:left;width:55%}.contacts__map img{width:100%;vertical-align:top}@media screen and (max-width:767px){.contacts__map{float:none;width:auto}}.contacts__company{margin-bottom:15px;font-size:24px;font-size:2.4rem;color:rgba(0,0,0,.89);line-height:1.33333333}@media screen and (max-width:767px){.contacts__company{font-size:22px}}.contacts__address{margin-bottom:60px;font-size:18px;font-size:1.8rem;color:#000;line-height:1.5}@media screen and (max-width:767px){.contacts__address{font-size:17px;font-size:1.7rem}}.contacts__link{text-decoration:none}.contacts__link:hover{text-decoration:underline}.contacts__partner{margin-bottom:19px;color:rgba(0,0,0,.89);font-size:18px;font-size:1.8rem;line-height:1.5}@media screen and (max-width:767px){.contacts__partner{font-size:17px;font-size:1.7rem;line-height:1.47058824}}.contacts__sectors{margin:0;padding:0;list-style:none;-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:25px;-moz-column-gap:25px;column-gap:25px}@media screen and (max-width:1023px){.contacts__sectors{-webkit-column-count:1;-moz-column-count:1;column-count:1;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0}}@media screen and (max-width:767px){.contacts__sectors{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:25px;-moz-column-gap:25px;column-gap:25px}}@media screen and (max-width:479px){.contacts__sectors{-webkit-column-count:1;-moz-column-count:1;column-count:1;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0}}.contacts__sectors-item{display:inline-block;width:100%;margin:0 0 14px;padding:0;font-size:18px;font-size:1.8rem;color:rgba(0,0,0,.89);line-height:1.5}@media screen and (max-width:767px){.contacts__sectors-item{font-size:17px;font-size:1.7rem;line-height:1.47058824}}.add-to-collection{display:inline-block;padding-left:29px;position:relative;color:#000;font-size:15px;font-size:1.5rem;letter-spacing:.08px;line-height:1.46666667;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.card-list__item .add-to-collection,.card_movie .add-to-collection{display:inline-block}.card-list__item_favorite .add-to-collection,.card_movie_favorite .add-to-collection{display:none}.add-to-collection:hover{color:red}.add-to-collection:hover:before{-webkit-transform:translate(0,-3px);-ms-transform:translate(0,-3px);transform:translate(0,-3px)}.add-to-collection:before{content:'';background:url(../img/favorite-black.svg) no-repeat;width:23px;height:19px;margin:auto;position:absolute;top:0;bottom:0;left:0;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}@media screen and (max-width:767px){.add-to-collection{width:26px;height:26px;padding:0;text-indent:-1000em}.add-to-collection:before{right:0}}.add-to-collection_card_movie{margin:27px 25px 27px 0;float:right}@media screen and (max-width:580px){.add-to-collection_card_movie{clear:both;float:none;margin:25px 15px;vertical-align:middle}}.movie-mode{display:inline-block;padding-left:29px;position:relative;color:#000;font-size:15px;font-size:1.5rem;letter-spacing:.08px;line-height:1.46666667;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.movie-mode:hover{color:red}.movie-mode:hover:before{-webkit-transform:translate(0,-3px);-ms-transform:translate(0,-3px);transform:translate(0,-3px)}.movie-mode:before{content:'';background:url(../img/movie-mode.svg) no-repeat;width:24px;height:18px;margin:auto;position:absolute;top:0;bottom:0;left:0;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}@media screen and (max-width:767px){.movie-mode{width:26px;height:26px;padding:0;text-indent:-1000em}.movie-mode:before{right:0}}.page_movie-mode .movie-mode{color:#fff;z-index:101}.movie-mode_card_movie{float:right;margin:27px 25px 27px 0}@media screen and (max-width:580px){.movie-mode_card_movie{clear:both;float:none;margin:25px 15px;vertical-align:middle}}.movie-mode_content_head{position:absolute;top:50%;right:395px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:1023px){.movie-mode_content_head{display:none}}.add-to-site{display:inline-block;padding-left:29px;position:relative;color:#000;font-size:15px;font-size:1.5rem;letter-spacing:.08px;line-height:1.46666667;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.add-to-site:hover{color:red}.add-to-site:hover:before{-webkit-transform:translate(0,-3px);-ms-transform:translate(0,-3px);transform:translate(0,-3px)}.add-to-site:before{content:'';background:url(../img/embed.svg) no-repeat;width:20px;height:16px;margin:auto;position:absolute;top:0;bottom:0;left:0;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}@media screen and (max-width:767px){.add-to-site{width:26px;height:26px;padding:0;text-indent:-1000em}.add-to-site:before{right:0}}.add-to-site_card_movie{margin:27px 0 27px 0;float:right}@media screen and (max-width:580px){.add-to-site_card_movie{clear:both;margin:25px 15px;float:none;vertical-align:middle}}.like{display:inline-block;position:relative;font-size:28px;font-size:2.8rem;line-height:1;color:#63bd2b;text-decoration:none}@media screen and (max-width:1023px){.like{width:auto;margin-right:30px}}@media screen and (max-width:479px){.like{float:none;margin:20px 0 0;text-align:center}}.like__link{display:inline-block;color:inherit;text-decoration:none}.like__link:before{content:'';background:url(../img/likes.svg) no-repeat;width:35px;height:28px;display:inline-block;margin-right:13px;position:relative;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.like__link:hover:before{-webkit-transform:translate(0,-5px);-ms-transform:translate(0,-5px);transform:translate(0,-5px)}.like_card_movie{margin:22px 0;float:left;width:21%}@media screen and (max-width:479px){.like_card_movie{width:30%}}.playlist-empty{min-height:100px;height:calc(100vh - 452px);padding:0 20px;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.playlist-empty__heading{margin-bottom:10px;color:#000;font-size:40px;font-size:4rem;line-height:1}@media screen and (max-width:767px){.playlist-empty__heading{text-align:center}}.playlist-empty__text{color:#000;font-size:18px;font-size:1.8rem;line-height:1.3}@media screen and (max-width:767px){.playlist-empty__text{text-align:center}}.playlist-empty__text img{vertical-align:middle}.quality-movie{position:absolute;top:50%;right:45px;font-size:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}@media screen and (max-width:767px){.quality-movie{display:none}}.quality-movie__heading{display:inline-block;vertical-align:middle;padding-right:9px;font-size:13px;font-size:1.3rem;color:#000}.quality-movie__link{border:1px solid #e1e1e1;display:inline-block;padding:0 8px;vertical-align:middle;font-size:13px;font-size:1.3rem;color:#4a4a4a;line-height:1.92307692;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.quality-movie__link:nth-child(2){border-radius:4px 0 0 4px}.quality-movie__link:last-child{border-radius:0 4px 4px 0}.quality-movie__link:hover{color:#000}.quality-movie__link_active{background:#000;color:#fff}.quality-movie__link_active:hover{color:#fff}.delete-from-collection{display:inline-block;padding-left:36px;position:relative;color:red;font-size:15px;font-size:1.5rem;letter-spacing:.08px;line-height:1.46666667;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.card-list__item .delete-from-collection,.card_movie .delete-from-collection{display:none}.card-list__item_favorite .delete-from-collection,.card_movie_favorite .delete-from-collection{display:inline-block}.delete-from-collection:hover{color:red}.delete-from-collection:hover:before{opacity:0}.delete-from-collection:hover:after{opacity:1}.delete-from-collection:after,.delete-from-collection:before{content:'';background:#ff3c00 url(../img/favorite.svg) no-repeat 50% 50%;background-size:19px 19px;border-radius:5px;width:30px;height:30px;margin:auto;position:absolute;top:0;bottom:0;left:0;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.delete-from-collection:after{background-image:url(../img/favorite-del-white.svg);background-size:22px 23px;opacity:0}@media screen and (max-width:767px){.delete-from-collection{width:35px;height:35px;padding:0;text-indent:-1000em}.delete-from-collection:before{right:0}}.delete-from-collection_card_movie{margin:27px 40px 27px 0;float:right}@media screen and (max-width:767px){.delete-from-collection_card_movie{margin:20px 40px 20px 0}}@media screen and (max-width:479px){.delete-from-collection_card_movie{clear:both;margin:8px 14px;vertical-align:middle;float:none}}.modal{position:fixed;z-index:1000;-webkit-backface-visibility:hidden}.modal__inner{overflow:hidden;overflow-y:scroll;position:absolute;top:0;left:0;bottom:0;right:0}.modal,.modal__bg{top:0;right:0;bottom:0;left:0}.modal__horisontal_inner{display:table;height:100%;margin:auto}@media screen and (max-width:767px){.modal__horisontal_inner{width:100%}}.modal__vertical_inner{display:table-cell;vertical-align:middle;-webkit-perspective:1300px;perspective:1300px;padding:30px}.modal__bg{background:#000;zoom:1;filter:alpha(opacity=0);opacity:0;position:absolute;z-index:-1;-webkit-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.show .modal__bg{zoom:1;filter:alpha(opacity=50);opacity:.5}.modal__content{background:#fff;-webkit-box-shadow:0 0 15px #000;box-shadow:0 0 15px #000;padding:24px;position:relative;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);opacity:0;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.show .modal__content{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.modal__close_btn{width:50px;height:50px;position:absolute;top:0;right:0;z-index:2;text-indent:-1000em}.modal__close_btn:hover:before{background-position:0 100%}.modal__close_btn:before{content:'';background:url(../img/close_up_body.png) no-repeat;width:20px;height:20px;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0}.modal_lightbox__next,.modal_lightbox__prev{cursor:pointer;width:50%;position:absolute;top:0;bottom:0;left:0}.modal_lightbox__next{left:auto;right:0}.modal-embed .modal__content{width:600px;font-size:15px;font-size:1.5rem}@media screen and (max-width:767px){.modal-embed .modal__content{width:auto}}.modal-embed p{margin-bottom:10px}.modal-embed__field{border:1px solid #d3d3d3;width:100%;padding:10px;font-size:30px;font-size:3rem;-webkit-box-sizing:border-box;box-sizing:border-box}.skip{background-color:#000;display:inline-block;padding:8px 14px;color:#fff;font-size:16px;font-size:1.6rem;font-weight:700;text-decoration:none;opacity:.6}.skip_movie{position:absolute;right:10px;bottom:40px;z-index:10}.preroll{background-color:#000;display:inline-block;padding:8px 14px;color:#fff;font-size:16px;font-size:1.6rem;font-weight:700;text-decoration:none;opacity:.6}.preroll_movie{position:absolute;left:10px;bottom:40px;z-index:10}.error-box{padding:55px 100px;font-size:18px;font-size:1.8rem;color:rgba(0,0,0,.89);line-height:1.5}@media screen and (max-width:767px){.error-box{padding:25px 17px;font-size:16px;font-size:1.6rem}}.error-box p{margin:0}.banner__img{max-width:100%;vertical-align:top}.films-more__text{border-bottom:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(0,0,0,.1);padding:36px 45px;color:rgba(0,0,0,.89);font-size:18px;font-size:1.8rem;line-height:27px}@media screen and (max-width:767px){.films-more__text{padding:15px}}@media screen and (max-width:767px){.films-more__text .h1{margin-bottom:15px}}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc9.ttf) format('truetype')}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxP.ttf) format('truetype')}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc9.ttf) format('truetype')}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc9.ttf) format('truetype')}.socials-channels{width:80%;margin:auto;padding:24px 0 40px}@media (max-width:1023px){.socials-channels{width:auto;padding:24px 24px 40px}}@media (max-width:767px){.socials-channels{padding:24px 12px 40px}}.socials-channels__wrapper{max-width:760px}@media (max-width:1023px){.socials-channels__wrapper{max-width:none}}.socials-channels__summary{border-bottom:2px solid #f3f3f3;margin-bottom:28px;font-size:16px;font-size:1.6rem;color:#000;line-height:1.5}@media (max-width:767px){.socials-channels__summary{margin-bottom:20px;font-size:15px;font-size:1.5rem}}.socials-channels__summary p{margin-bottom:1.2em}.socials-channels__subscribe-heading{margin-bottom:18px;font-size:16px;font-size:1.6rem;color:#000;font-weight:500;line-height:1.4}@media (max-width:767px){.socials-channels__subscribe-heading{font-size:15px;font-size:1.5rem}}.socials-channels__subscribe-link{background:no-repeat 50%;border-radius:3px;display:inline-block;width:56px;height:56px;margin-right:4px;vertical-align:top}@media (max-width:767px){.socials-channels__subscribe-link{display:block;width:auto;margin:0 0 8px}}.socials-channels__subscribe-link_fb{background-color:#3058a3;background-image:url(../img/socials/facebook.svg)}.socials-channels__subscribe-link_vk{background-color:#3f76a7;background-image:url(../img/socials/vk.svg)}.socials-channels__subscribe-link_tw{background-color:#00a3fa;background-image:url(../img/socials/twitter.svg)}.socials-channels__subscribe-link_ok{background-color:#ff8d00;background-image:url(../img/socials/ok.svg)}.socials-channels__subscribe-link_yt{background-color:red;background-image:url(../img/socials/youtube.svg)}.download-video{display:inline-block;padding-left:24px;position:relative;color:#000;font-size:15px;font-size:1.5rem;letter-spacing:.08px;line-height:1.46666667;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.download-video:hover{color:red}.download-video:hover:before{-webkit-transform:translate(0,-3px);-ms-transform:translate(0,-3px);transform:translate(0,-3px)}.download-video:before{content:'';background:url(../img/download2.svg) no-repeat;width:20px;height:16px;margin:auto;position:absolute;top:0;bottom:0;left:0;-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}@media screen and (max-width:767px){.download-video{width:26px;height:26px;padding:0;text-indent:-1000em}.download-video:before{right:0}}.download-video_card_movie{margin:27px 25px 27px 0;float:right}@media screen and (max-width:819px){.download-video_card_movie{margin-top:13px}}@media screen and (max-width:767px){.download-video_card_movie{margin-top:27px}}@media screen and (max-width:580px){.download-video_card_movie{clear:both;margin:25px 15px;float:none;vertical-align:middle}}.sputnik-info{width:69%;padding:7%;font-size:18px;font-size:1.8rem}@media screen and (max-width:1200px){.sputnik-info{padding:30px}}@media screen and (max-width:1023px){.sputnik-info{width:auto;padding:17px}}.sputnik-info__table{width:100%;border-spacing:0}.sputnik-info__table tr:nth-child(2n){background-color:#ddd}.sputnik-info__table td{padding:8px;line-height:1.5;vertical-align:top}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwicGFydGlhbHMvYXBwLmxlc3MiLCJtYWluLmNzcyIsInBhcnRpYWxzL2ZvbnRzLmxlc3MiLCJwYXJ0aWFscy9taXhpbnMubGVzcyIsInBhcnRpYWxzL2xvZ28ubGVzcyIsInBhcnRpYWxzL25hdi5sZXNzIiwicGFydGlhbHMvaGVhZGVyLmxlc3MiLCJwYXJ0aWFscy9jb250ZW50Lmxlc3MiLCJwYXJ0aWFscy9zb2NpYWwubGVzcyIsInBhcnRpYWxzL3Byb21vLmxlc3MiLCJwYXJ0aWFscy9vbi10aGUtYWlyLmxlc3MiLCJwYXJ0aWFscy9zZWFyY2gubGVzcyIsInBhcnRpYWxzL2Zhdm9yaXRlcy5sZXNzIiwicGFydGlhbHMvZm9vdGVyLmxlc3MiLCJwYXJ0aWFscy9jb3B5cmlnaHQubGVzcyIsInBhcnRpYWxzL2NhcmQubGVzcyIsInBhcnRpYWxzL21vcmUubGVzcyIsInBhcnRpYWxzL3N1YnNjcmliZS5sZXNzIiwicGFydGlhbHMvY29scy5sZXNzIiwicGFydGlhbHMvY29tbWVudHMubGVzcyIsInBhcnRpYWxzL2NsZWFyLXBsYXlsaXN0Lmxlc3MiLCJwYXJ0aWFscy9hYm91dC5sZXNzIiwicGFydGlhbHMvbmRhc2gtbGlzdC5sZXNzIiwicGFydGlhbHMvcnVsZXMubGVzcyIsInBhcnRpYWxzL3NvcnRpbmctcGFyYW1zLmxlc3MiLCJwYXJ0aWFscy9jb250YWN0cy5sZXNzIiwicGFydGlhbHMvYWRkLXRvLWNvbGxlY3Rpb24ubGVzcyIsInBhcnRpYWxzL21vdmllLW1vZGUubGVzcyIsInBhcnRpYWxzL2FkZC10by1zaXRlLmxlc3MiLCJwYXJ0aWFscy9saWtlLmxlc3MiLCJwYXJ0aWFscy9wbGF5bGlzdC1lbXB0eS5sZXNzIiwicGFydGlhbHMvcXVhbGl0eS1tb3ZpZS5sZXNzIiwicGFydGlhbHMvZGVsZXRlLWZyb20tY29sbGVjdGlvbi5sZXNzIiwicGFydGlhbHMvbW9kYWwubGVzcyIsInBhcnRpYWxzL3NraXAubGVzcyIsInBhcnRpYWxzL3ByZXJvbGwubGVzcyIsInBhcnRpYWxzL2Vycm9yLmxlc3MiLCJwYXJ0aWFscy9iYW5uZXIubGVzcyIsInBhcnRpYWxzL2ZpbG1zLW1vcmUubGVzcyIsIi4uLy4uL2h0dHBzOi9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAmc3Vic2V0PWN5cmlsbGljIiwicGFydGlhbHMvc29jaWFscy1jaGFubmVscy5sZXNzIiwicGFydGlhbHMvZG93bmxvYWQtdmlkZW8ubGVzcyIsInBhcnRpYWxzL3NwdXRuaWstaW5mby5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQVVBLEtBQ0UsWUFBYSxLQUNiLHlCQUEwQixLQVU1QixLQUNFLE9BQVEsRUFPVixLQUNFLFFBQVMsTUFRWCxHQUNFLFVBQVcsSUFDWCxPQUFRLE1BQU8sRUFXakIsR0FDRSxXQUFZLFlBQ1osT0FBUSxFQUNSLFNBQVUsUUFRWixJQUNFLFlBQWEsU0FBUyxDQUFFLFVBQ3hCLFVBQVcsSUFVYixFQUNFLGlCQUFrQixZQVFwQixZQUNFLGNBQWUsS0FDZixnQkFBaUIsVUFDakIsZ0JBQWlCLFVBQVUsT0FPN0IsRUFDQSxPQUNFLFlBQWEsT0FRZixLQUNBLElBQ0EsS0FDRSxZQUFhLFNBQVMsQ0FBRSxVQUN4QixVQUFXLElBT2IsTUFDRSxVQUFXLElBUWIsSUFDQSxJQUNFLFVBQVcsSUFDWCxZQUFhLEVBQ2IsU0FBVSxTQUNWLGVBQWdCLFNBR2xCLElBQ0UsT0FBUSxPQUdWLElBQ0UsSUFBSyxNQVVQLElBQ0UsYUFBYyxLQVdoQixPQUNBLE1BQ0EsU0FDQSxPQUNBLFNBQ0UsWUFBYSxRQUNiLFVBQVcsS0FDWCxZQUFhLEtBQ2IsT0FBUSxFQVFWLE9BQ0EsTUFDRSxTQUFVLFFBUVosT0FDQSxPQUNFLGVBQWdCLEtBUWxCLGNBQ0EsYUFDQSxjQUhBLE9BSUUsbUJBQW9CLE9BUXRCLGdDQUNBLCtCQUNB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dkM0eEZFLFVBQUEsS0FDQSxVQUFBLE91QzF4RkYscUNBQUEsY0FDRSxRQUFBLE1BR0YscUNBQUEsY0FDRSxNQUFBLEtBQ0EsUUFBQSxNQUdGLHFCQUNFLE1BQUEsS0FDQSxlQUFBLEVBR0Usc0NBQ0UsaUJBQUEsS0FOTix3QkFXSSxRQUFBLElBQ0EsWUFBQSxJQUNBLGVBQUEiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiXG5odG1sIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogNjIuNSU7XG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cbn1cblxuYm9keSB7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxufVxuXG5cbmlucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGh0bWwge1xuICAgIC5Gb250Um9ib3RvKCk7XG59XG5cbm9iamVjdCwgZW1iZWQsIGRpdjp0YXJnZXQsIDpmb2N1cyB7XG4gICAgb3V0bGluZTogMCBub25lO1xufVxuXG5hIHtcbiAgICBjb2xvcjogIzAzMzA5MztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmEsIGxhYmVsLCBidXR0b24sIHNlbGVjdCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5wIHtcbiAgICBtYXJnaW46IDAgMCAyZW07XG59XG5cbi53cmFwcGVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG5cblxuICAgLmRpc3BsYXkoZmxleCk7XG5cbiAgICAuZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblxuICAgIC5mbGV4LXdyYXAobm93cmFwKTtcblxuICAgIC5qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG5cbiAgICAuYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcblxuICAgIC5hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIG1heC13aWR0aDogMTUwMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgei1pbmRleDogLTEwO1xuICAgIH1cblxufVxuXG4ucGFnZV9tb3ZpZS1tb2RlIHtcbiAgICAud3JhcHBlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC45KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhpZGRlbiB7XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLmgxIHtcbiAgICBtYXJnaW46IDAgMCAzOXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSg1MCk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDlweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIC5mb250LXNpemUoNDApO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDdweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuZm9udC1zaXplKDI1KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1cHg7XG4gICAgfVxuXG4gICAgLmgxX19kZWxpbWl0ZXIge1xuICAgICAgICBjb2xvcjogI2RhZGFkYTtcbiAgICB9XG5cblxufVxuXG4uaDIge1xuICAgIG1hcmdpbjogMCAwIC41ZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDMwKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uaDMge1xuICAgIG1hcmdpbjogMCAwIDFlbTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLmZvbnQtc2l6ZSgyNSk7XG4gICAgbGluZS1oZWlnaHQ6IDI2LzI1O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblxuXG59XG5cbi5oNCB7XG4gICAgbWFyZ2luOiAwIDAgLjdlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC5mb250LXNpemUoMTgpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cbn1cblxuLmg1IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMzJweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDguNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uaW5uZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTUwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIC8qMjYycHgqLztcbiAgICBwYWRkaW5nOiA3MnB4IDAgMDtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG5cbiAgICAub3JkZXIoMCk7XG5cbiAgICAuZmxleCgxIDEgYXV0byk7XG5cbiAgICAuYWxpZ24tc2VsZihhdXRvKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAvL21hcmdpbi1ib3R0b206IDYzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIH1cbn1cblxuLmxpbmsge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmUwMDAwO1xuICAgIH1cbn1cbiIsIi8qXG4qIFRoaXJkIFBhcnR5XG4qL1xuQGltcG9ydCBcIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzXCI7XG4vKlxuKiBDdXN0b21cbiovXG5odG1sIHtcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDYyLjUlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiAjMDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhLFxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbn1cbm9iamVjdCxcbmVtYmVkLFxuZGl2OnRhcmdldCxcbjpmb2N1cyB7XG4gIG91dGxpbmU6IDAgbm9uZTtcbn1cbmEge1xuICBjb2xvcjogIzAzMzA5MztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYSxcbmxhYmVsLFxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxucCB7XG4gIG1hcmdpbjogMCAwIDJlbTtcbn1cbi53cmFwcGVyIHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC1tb3otYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICAtd2Via2l0LWJveC1wYWNrOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIC1tcy1mbGV4LXBhY2s6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LWJveC1hbGlnbjogZmxleC1zdGFydDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogc3RhcnQ7XG4gIC1tcy1mbGV4LWFsaWduOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi53cmFwcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IC0xMDtcbn1cbi5wYWdlX21vdmllLW1vZGUgLndyYXBwZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwO1xufVxuLmhpZGRlbiB7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xufVxuLmgxIHtcbiAgbWFyZ2luOiAwIDAgMzlweDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogNTBweDtcbiAgZm9udC1zaXplOiA1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDlweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmgxIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wN3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaDEge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDVweDtcbiAgfVxufVxuLmgxIC5oMV9fZGVsaW1pdGVyIHtcbiAgY29sb3I6ICNkYWRhZGE7XG59XG4uaDIge1xuICBtYXJnaW46IDAgMCAwLjVlbTtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5oMyB7XG4gIG1hcmdpbjogMCAwIDFlbTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMDQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uaDQge1xuICBtYXJnaW46IDAgMCAwLjdlbTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uaDUge1xuICBtYXJnaW4tYm90dG9tOiAxMzJweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogOC41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgbWFyZ2luOiAwIGF1dG8gLyoyNjJweCovO1xuICBwYWRkaW5nOiA3MnB4IDAgMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xuICAtbXMtZmxleC1vcmRlcjogMDtcbiAgLXdlYmtpdC1vcmRlcjogMDtcbiAgb3JkZXI6IDA7XG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gIC13ZWJraXQtZmxleDogMSAxIGF1dG87XG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgZmxleDogMSAxIGF1dG87XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogYXV0bztcbiAgLW1zLWFsaWduLXNlbGY6IGF1dG87XG4gIGFsaWduLXNlbGY6IGF1dG87XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5pbm5lciB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gIH1cbn1cbi5saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLmxpbms6aG92ZXIge1xuICBjb2xvcjogI2ZlMDAwMDtcbn1cbi5sb2dvX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG4ubG9nb19oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbG9nby5zdmdcIikgbm8tcmVwZWF0O1xuICB3aWR0aDogNTdweDtcbiAgaGVpZ2h0OiA0NXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTUwMHB4KSB7XG4gIC5sb2dvX2hlYWRlciB7XG4gICAgbGVmdDogMzBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmxvZ29faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMzZweDtcbiAgICB3aWR0aDogNDdweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbGVmdDogMTJweDtcbiAgICB0b3A6IDdweDtcbiAgfVxufVxuLmxvZ29fZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3J0LnN2Z1wiKSBuby1yZXBlYXQ7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNTNweDtcbiAgbGVmdDogMzJweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5sb2dvX2Zvb3RlciB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRvcDogMzUxcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgfVxufVxuLm5hdl9fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5uYXZfX2l0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgLm5hdl9faXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5uYXZfX2xpbmsge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubmF2X19saW5rOmhvdmVyIHtcbiAgY29sb3I6ICNmZTAwMDA7XG59XG4ubmF2X2hlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMzgwcHg7XG4gIHotaW5kZXg6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgLm5hdl9oZWFkZXIge1xuICAgIGNsaXA6IHJlY3QoMCwgMTAwMGVtLCAxMDAwZW0sIDApO1xuICAgIGhlaWdodDogNzJweDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgfVxuICAubmF2X2hlYWRlcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgLm5hdl9oZWFkZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgOXB4IDAgI2ZmZiwgMCAxOHB4IDAgI2ZmZjtcbiAgICB3aWR0aDogMjlweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNnB4O1xuICAgIHJpZ2h0OiAyOXB4O1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZfaGVhZGVyIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gIH1cbiAgLm5hdl9oZWFkZXI6YmVmb3JlIHtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAubmF2X2hlYWRlci5uYXZfb3BlbmVkIC5uYXZfX2xpc3RfaGVhZGVyIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG4gIH1cbn1cbi5uYXZfX2xpc3RfaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAubmF2X19saXN0X2hlYWRlciB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTEwMCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0xMDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0xMDAlKTtcbiAgfVxufVxuLm5hdl9faXRlbV9oZWFkZXIge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDczcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgLm5hdl9faXRlbV9oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZfX2l0ZW1faGVhZGVyIHtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgfVxufVxuLm5hdl9fbGlua19oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubmF2X19saW5rX2hlYWRlcjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogIzYzQkQyQjtcbiAgaGVpZ2h0OiA0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm5hdl9fbGlua19oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzYzQkQyQjtcbn1cbi5uYXZfX2xpbmtfaGVhZGVyOmhvdmVyOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgLm5hdl9fbGlua19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAyOXB4O1xuICB9XG59XG4ubmF2X2Zvb3RlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzM3B4O1xuICBsZWZ0OiAzMXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5uYXZfZm9vdGVyIHtcbiAgICB0b3A6IDUzcHg7XG4gICAgcmlnaHQ6IDMxcHg7XG4gIH1cbn1cbi5uYXZfX2l0ZW1fZm9vdGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5uYXZfX2l0ZW1fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm5hdl9fbGlua19mb290ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICB9XG59XG4ubmF2X3NpZGUge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjbGlwOiByZWN0KDAsIDEwMDBlbSwgMTAwMGVtLCAwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMXB4O1xuICB6LWluZGV4OiA5O1xufVxuLm1haW4tcGFnZSAubmF2X3NpZGU6aG92ZXIge1xuICBib3gtc2hhZG93OiAxcHggMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWFpbi1wYWdlIC5uYXZfc2lkZTpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm5hdl9zaWRlIHtcbiAgICBjbGlwOiByZWN0KDAsIDEwMDBlbSwgMTAwMGVtLCAtMTAwMGVtKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5uYXZfc2lkZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBib3gtc2hhZG93OiAwIDVweCAwICMwMDAsIDAgMTBweCAwICMwMDA7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIHJpZ2h0OiAxOXB4O1xuICAgIHotaW5kZXg6IDU7XG4gIH1cbiAgLm5hdl9zaWRlOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtYWN0aXZlLXRleHQpO1xuICAgIHBhZGRpbmc6IDIzcHggNTNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTMzMzMzMzM7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdl9zaWRlOmJlZm9yZSB7XG4gICAgcGFkZGluZzogMTlweCA1M3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubmF2X3NpZGUge1xuICAgIGhlaWdodDogNTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogYXV0bztcbiAgICB6LWluZGV4OiA5O1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwcHgpO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubmF2X3NpZGUubmF2X29wZW5lZCAubmF2X19saXN0X3NpZGUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDAlKTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLm5hdl9zaWRlLm5hdl9vcGVuZWQgLm5hdl9fbGlzdF9zaWRlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDAlKTtcbiAgfVxufVxuLm5hdl9fbGlzdF9zaWRlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm5hdl9fbGlzdF9zaWRlIH4gYnIsXG4gIC5uYXZfX2xpc3Rfc2lkZSB+IC5oMyxcbiAgLm5hdl9fbGlzdF9zaWRlIH4gLm5hdl9fbGlzdF9zaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubmF2X19saXN0X3NpZGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0xMDAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTAwJSk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5uYXZfX2xpc3Rfc2lkZSB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogYXV0bztcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKTtcbiAgfVxufVxuLm5hdl9faXRlbV9zaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCAwIDExcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZfX2l0ZW1fc2lkZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubmF2X19pdGVtX3NpZGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLm5hdl9zaWRlIC5uYXZfX2l0ZW1fYWN0aXZlIHtcbiAgY29sb3I6ICM1YmJkMWU7XG59XG4ubmF2X19pdGVtX2FyY2hpdmUge1xuICBjb2xvcjogIzk5OTtcbn1cbi5uYXZfX2l0ZW1fYmlnIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZfX2l0ZW1fYmlnIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbi5uYXZfX2xpbmtfc2lkZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubmF2X19saW5rX3NpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxOXB4O1xuICB9XG59XG4uaGVhZGVyIHtcbiAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gIGhlaWdodDogNzNweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogLTFweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwO1xufVxuLmhlYWRlcjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogLTEwMDBlbTtcbiAgcmlnaHQ6IC0xMDAwZW07XG4gIHotaW5kZXg6IC0xO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0OiA1MXB4O1xuICB9XG59XG4uY29udGVudF9faGVhZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMjhweCAzMHB4IDM5cHg7XG59XG4uY29udGVudF9faGVhZCAuaDEge1xuICBtYXJnaW46IDA7XG59XG4uY29udGVudF9faGVhZCAuY2FyZF9fbW92aWUtbW9kZV9tb3ZpZSB7XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDUwcHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY29udGVudF9faGVhZCAuY2FyZF9fbW92aWUtbW9kZV9tb3ZpZSB7XG4gICAgcmlnaHQ6IDIxcHg7XG4gIH1cbn1cbi5jb250ZW50X19oZWFkIC5jYXJkX19zb2NpYWxfbW92aWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA0MjhweDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuY29udGVudF9faGVhZCAuY2FyZF9fc29jaWFsX21vdmllIHtcbiAgICBsZWZ0OiAzMjhweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNvbnRlbnRfX2hlYWQgLmNhcmRfX3NvY2lhbF9tb3ZpZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jb250ZW50X19oZWFkIHtcbiAgICBwYWRkaW5nOiAxOXB4IDE3cHggMjdweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNvbnRlbnRfX2hlYWQge1xuICAgIHBhZGRpbmc6IDE2cHggMTdweCAxOXB4O1xuICB9XG59XG4uc29jaWFsX19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLnNvY2lhbF9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnNvY2lhbF9faXRlbV9oZWFkZXIge1xuICAgIHdpZHRoOiAyMHB4O1xuICB9XG59XG4uc29jaWFsX19saW5rIHtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc29jaWFsX19saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgNTAlIDUwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbi5zb2NpYWxfX2xpbms6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc7XG59XG4uc29jaWFsX19saW5rX2hlYWRlcjpiZWZvcmUge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuLnNvY2lhbF9fbGlua19mYjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZmIuc3ZnXCIpO1xufVxuLnNvY2lhbF9fbGlua190dzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvdC5zdmdcIik7XG59XG4uc29jaWFsX19saW5rX3ZrOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtc2l6ZTogMzBweCBhdXRvO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvdmsuc3ZnXCIpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnNvY2lhbF9fbGlua192azpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjVweCBhdXRvO1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxufVxuLnNvY2lhbF9fbGlua195bzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3kuc3ZnXCIpO1xufVxuLnNvY2lhbF9fbGlua19vazpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXNpemU6IDIycHggYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL29rLnN2Z1wiKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5zb2NpYWxfX2xpbmtfb2s6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE3cHggYXV0bztcbiAgfVxufVxuLnNvY2lhbF9fbGlua190aWt0b2s6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1zaXplOiAyMnB4IGF1dG87XG4gIGxlZnQ6IC01cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy90aWt0b2suc3ZnXCIpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnNvY2lhbF9fbGlua190aWt0b2s6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE3cHggYXV0bztcbiAgfVxufVxuLnNvY2lhbF9fbGlua19yc3M6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3Jzcy5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogMjBweCBhdXRvO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnNvY2lhbF9fbGlua19yc3M6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggYXV0bztcbiAgfVxufVxuLnNvY2lhbF9fbGlua19ydXR1YmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IGF1dG87XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9ydXR1YmUuc3ZnXCIpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnNvY2lhbF9fbGlua19ydXR1YmU6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggYXV0bztcbiAgfVxufVxuLnNvY2lhbF9fbGlua190ZWxlZ3JhbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3RlbGVncmFtLnN2Z1wiKTtcbiAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuc29jaWFsX19saW5rX3RlbGVncmFtOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAzMnB4IGF1dG87XG4gIH1cbn1cbi5zb2NpYWxfaGVhZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiAxMTVweDtcbiAgei1pbmRleDogMjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE1MHB4KSB7XG4gIC5zb2NpYWxfaGVhZGVyIHtcbiAgICByaWdodDogMTkwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zb2NpYWxfaGVhZGVyIHtcbiAgICB0b3A6IDEwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5zb2NpYWxfaGVhZGVyIHtcbiAgICByaWdodDogMTQ1cHg7XG4gIH1cbn1cbi5zb2NpYWxfZm9vdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMxcHg7XG4gIHJpZ2h0OiAzNXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5zb2NpYWxfZm9vdGVyIHtcbiAgICB0b3A6IDI2OHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnNvY2lhbF9faXRlbV9mb290ZXIge1xuICAgIG1hcmdpbjogMCA5cHg7XG4gIH1cbn1cbi5zb2NpYWxfX2xpbmtfZm9vdGVyOmJlZm9yZSB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnNvY2lhbF9fbGlua19mb290ZXI6YmVmb3JlIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cbn1cbi5zb2NpYWxfX2xpc3RfY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zb2NpYWxfX2l0ZW1fY29udGVudCB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMCA4cHg7XG59XG4uY2FyZF9fc29jaWFsLWl0ZW1fbW92aWUge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLmNhcmRfX3NvY2lhbC1saW5rX21vdmllLFxuLnNvY2lhbF9fbGlua19jb250ZW50IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2NvbG9yX3NvY2lhbF9pY28ucG5nXCIpO1xufVxuLnNvY2lhbF9fbGlua190d19jb250ZW50IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDtcbn1cbi5zb2NpYWxfX2xpbmtfZ2dfY29udGVudCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHg7XG59XG4uc29jaWFsX19saW5rX3lvX2NvbnRlbnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjBweDtcbn1cbi5jYXJkX19zb2NpYWwtbGlua19tb3ZpZSB7XG4gIGJhY2tncm91bmQtc2l6ZTogMzBweCBhdXRvO1xufVxuLmNhcmRfX3NvY2lhbC1saW5rX3R3X21vdmllIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzBweDtcbn1cbi5jYXJkX19zb2NpYWwtbGlua19nZ19tb3ZpZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTYwcHg7XG59XG4uY2FyZF9fc29jaWFsLWxpbmtfeW9fbW92aWUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05MHB4O1xufVxuLmNhcmRfX3NvY2lhbF9tb3ZpZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAyM3B4IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAuY2FyZF9fc29jaWFsX21vdmllIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5jYXJkX19zb2NpYWwtaXRlbV9tb3ZpZSB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuLnRlc3Q0X3N0eWxlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLnByb21vIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnByb21vIHtcbiAgICBoZWlnaHQ6IDI2MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAucHJvbW8ge1xuICAgIGhlaWdodDogMjAwcHg7XG4gIH1cbn1cbi5wcm9tb19fbGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5wcm9tb19fbGluazpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5wcm9tb19fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5wcm9tb19faXRlbSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5wcm9tb19faXRlbTpob3ZlciAucHJvbW9fX3RpdGxlIHtcbiAgb3BhY2l0eTogMC43O1xufVxuLnByb21vX19pdGVtX25ldy1uZXh0LFxuLnByb21vX19pdGVtX25ldy1wcmV2LFxuLnByb21vX19pdGVtX2FjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IDE7XG59XG4ucHJvbW9fX2l0ZW1fbmV3LW5leHQsXG4ucHJvbW9fX2l0ZW1fbmV3LXByZXYge1xuICB6LWluZGV4OiAyO1xufVxuLnByb21vX19pbWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5wcm9tb19fYmFja2dyb3VuZC1saW5rIHtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5wcm9tb19fbWVkaWEge1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTEwMDBlbTtcbiAgcmlnaHQ6IC0xMDAwZW07XG4gIGJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnByb21vX19pdGVtX29sZC1wcmV2IC5wcm9tb19fbWVkaWEge1xuICAtd2Via2l0LWFuaW1hdGlvbjogb2xkUHJldk1lZGlhIDAuNXMgZWFzZSBib3RoO1xuICBhbmltYXRpb246IG9sZFByZXZNZWRpYSAwLjVzIGVhc2UgYm90aDtcbn1cbi5wcm9tb19faXRlbV9uZXctcHJldiAucHJvbW9fX21lZGlhIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IG5ld1ByZXZNZWRpYSAwLjVzIGVhc2UgYm90aDtcbiAgYW5pbWF0aW9uOiBuZXdQcmV2TWVkaWEgMC41cyBlYXNlIGJvdGg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAucHJvbW9fX2l0ZW1fbmV3LXByZXYgLnByb21vX19jb250ZXh0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogbmV3UHJldkNvbnRleHQgMC41cyBlYXNlIGJvdGggMC4zcztcbiAgICBhbmltYXRpb246IG5ld1ByZXZDb250ZXh0IDAuNXMgZWFzZSBib3RoIDAuM3M7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5wcm9tb19faXRlbV9uZXctcHJldiAucHJvbW9fX2NvbnRleHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBuZXdQcmV2Q29udGV4dDIgMC41cyBlYXNlIGJvdGggMC4zcztcbiAgICBhbmltYXRpb246IG5ld1ByZXZDb250ZXh0MiAwLjVzIGVhc2UgYm90aCAwLjNzO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgb2xkUHJldk1lZGlhIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgb2xkUHJldk1lZGlhIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBuZXdQcmV2TWVkaWEge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIG5ld1ByZXZNZWRpYSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIG5ld1ByZXZDb250ZXh0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBuZXdQcmV2TUNvbnRleHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgbmV3UHJldkNvbnRleHQyIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbmV3UHJldk1Db250ZXh0MiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cbi5wcm9tb19faXRlbV9vbGQtbmV4dCAucHJvbW9fX21lZGlhIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IG9sZE5leHRNZWRpYSAwLjVzIGVhc2UgYm90aDtcbiAgYW5pbWF0aW9uOiBvbGROZXh0TWVkaWEgMC41cyBlYXNlIGJvdGg7XG59XG4ucHJvbW9fX2l0ZW1fbmV3LW5leHQgLnByb21vX19tZWRpYSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBuZXdOZXh0TWVkaWEgMC41cyBlYXNlIGJvdGg7XG4gIGFuaW1hdGlvbjogbmV3TmV4dE1lZGlhIDAuNXMgZWFzZSBib3RoO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnByb21vX19pdGVtX25ldy1uZXh0IC5wcm9tb19fY29udGV4dCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IG5ld05leHRDb250ZXh0IDAuNXMgZWFzZSBib3RoIDAuM3M7XG4gICAgYW5pbWF0aW9uOiBuZXdOZXh0Q29udGV4dCAwLjVzIGVhc2UgYm90aCAwLjNzO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucHJvbW9fX2l0ZW1fbmV3LW5leHQgLnByb21vX19jb250ZXh0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogbmV3TmV4dENvbnRleHQyIDAuNXMgZWFzZSBib3RoIDAuM3M7XG4gICAgYW5pbWF0aW9uOiBuZXdOZXh0Q29udGV4dDIgMC41cyBlYXNlIGJvdGggMC4zcztcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIG9sZE5leHRNZWRpYSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgb2xkTmV4dE1lZGlhIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIG5ld05leHRNZWRpYSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIG5ld05leHRNZWRpYSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBuZXdOZXh0Q29udGV4dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbmV3TmV4dENvbnRleHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgbmV3TmV4dENvbnRleHQyIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBuZXdOZXh0Q29udGV4dDIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4ucHJvbW9fX2NvbnRleHQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMztcbiAgd2lkdGg6IDY2MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucHJvbW9fX2NvbnRleHQge1xuICAgIHdpZHRoOiA1NjBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnByb21vX19jb250ZXh0IHtcbiAgICB3aWR0aDogNDUycHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5wcm9tb19fY29udGV4dCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMCAzMHB4O1xuICB9XG59XG4ucHJvbW9fX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMzlweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogNi41cmVtO1xuICBsaW5lLWhlaWdodDogMC45NDI4NTcxNDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucHJvbW9fX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBmb250LXNpemU6IDVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnByb21vX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnByb21vX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuLnByb21vX19ob25vcixcbi5wcm9tb19fcHJlbWllciB7XG4gIG1hcmdpbjogMTVweCAwIDEwcHg7XG4gIGNvbG9yOiAjNGZjZDAwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMC45NDI4NTcxNDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9tb19faG9ub3IsXG4gIC5wcm9tb19fcHJlbWllciB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5wcm9tb19faG9ub3IsXG4gIC5wcm9tb19fcHJlbWllciB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgfVxufVxuLnByb21vX19ob25vciB7XG4gIGNvbG9yOiAjZmY0NTAwO1xufVxuLnByb21vX19jYXRlZ29yeSB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI5NDExNzY1O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnByb21vX19jYXRlZ29yeSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG4ucHJvbW9fX2NhdGVnb3J5ID4gLnByb21vX19saW5rIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucHJvbW9fX3N1bW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjk0MTE3NjU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucHJvbW9fX3N1bW1hcnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5wcm9tb19fbmV4dCxcbi5wcm9tb19fcHJldiB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wcm9tb19hcnJvd3NfdmVydGljYWwucG5nXCIpIG5vLXJlcGVhdDtcbiAgd2lkdGg6IDQzcHg7XG4gIGhlaWdodDogNDNweDtcbiAgbWFyZ2luLXRvcDogLTk2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAyOXB4O1xuICB6LWluZGV4OiAyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucHJvbW9fX25leHQsXG4gIC5wcm9tb19fcHJldiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3Byb21vX2Fycm93c19ob3Jpem9udGFsLnBuZ1wiKTtcbiAgICB3aWR0aDogMzFweDtcbiAgICBoZWlnaHQ6IDMxcHg7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTlweDtcbiAgICBsZWZ0OiAyNHB4O1xuICB9XG59XG4ucHJvbW9fX3ByZXY6aG92ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTIwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0yMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0yMCUpO1xufVxuLnByb21vX19uZXh0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDNweDtcbiAgbWFyZ2luLXRvcDogNTNweDtcbn1cbi5wcm9tb19fbmV4dDpob3ZlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAyMCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAyMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDIwJSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucHJvbW9fX25leHQge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTMxcHg7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMjRweDtcbiAgfVxufVxuLnByb21vX19jb3VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDMxcHg7XG4gIHotaW5kZXg6IDI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtOTBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC05MGRlZyk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnByb21vX19jb3VudGVyIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cbi5vbi10aGUtYWlyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE5cHg7XG4gIGxlZnQ6IDY5cHg7XG4gIHJpZ2h0OiA5NjBweDtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luLXJpZ2h0OiA3MHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTAwcHgpIHtcbiAgLm9uLXRoZS1haXIge1xuICAgIGxlZnQ6IDk5cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAub24tdGhlLWFpciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm9uLXRoZS1haXJfX2NhcHRpb24ge1xuICBjb2xvcjogI2Q1MmYxMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzA3NjkyMzE7XG59XG4ub24tdGhlLWFpcl9fdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAjYTRhNGE0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsZXR0ZXItc3BhY2luZzogMS4wOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMDc2OTIzMTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ub24tdGhlLWFpcl9fbGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2VhcmNoX2hlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA3MnB4O1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAuc2VhcmNoX2hlYWRlciB7XG4gICAgcmlnaHQ6IDg1cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zZWFyY2hfaGVhZGVyIHtcbiAgICB0b3A6IDUwcHg7XG4gIH1cbn1cbi5zZWFyY2hfX2J0bl9oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvc2VhcmNoLXdoaXRlLnN2Z1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0NXB4O1xuICBoZWlnaHQ6IDcycHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTcycHg7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc2VhcmNoX19idG5faGVhZGVyOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNlYXJjaF9fYnRuX2hlYWRlciB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRvcDogLTUwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5zZWFyY2hfX2J0bl9oZWFkZXIge1xuICAgIHJpZ2h0OiAtMjBweDtcbiAgfVxufVxuLnNlYXJjaF9fY29udGV4dC13cmFwcGVyX2hlYWRlciB7XG4gIGNsaXA6IHJlY3QoMCwgMTAwMGVtLCAxMDAwZW0sIC0xMDAwZW0pO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uc2VhcmNoX19jb250ZXh0X2hlYWRlciB7XG4gIHBhZGRpbmc6IDM4cHggMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTAwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0xMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTAwJSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zZWFyY2hfX2NvbnRleHRfaGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtMTAwMGVtO1xuICByaWdodDogLTEwMDBlbTtcbiAgei1pbmRleDogLTE7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTUwcHgpIHtcbiAgLnNlYXJjaF9fY29udGV4dF9oZWFkZXIge1xuICAgIHBhZGRpbmc6IDM4cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAuc2VhcmNoX19jb250ZXh0X2hlYWRlciB7XG4gICAgcmlnaHQ6IC03MHB4O1xuICB9XG59XG4uc2VhcmNoX2FjdGl2ZSAuc2VhcmNoX19jb250ZXh0X2hlYWRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG59XG4uc2VhcmNoX2FjdGl2ZSAuc2VhcmNoX19jbG9zZS1idG5faGVhZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5zZWFyY2hfX2ZpZWxkIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QzZDNkMztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDI3cHggNDBweCAyN3B4IDA7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uc2VhcmNoX19maWVsZDotbW96LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNiNWI1YjU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zZWFyY2hfX2ZpZWxkOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNiNWI1YjU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zZWFyY2hfX2ZpZWxkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNiNWI1YjU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zZWFyY2hfX2ZpZWxkOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjYjViNWI1O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc2VhcmNoX19maWVsZDpmb2N1czotbW96LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnNlYXJjaF9fZmllbGQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjM7XG59XG4uc2VhcmNoX19maWVsZDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5zZWFyY2hfX2ZpZWxkOmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5zZWFyY2hfX3N1Ym1pdC1idG5fY29udGVudCxcbi5zZWFyY2hfX3N1Ym1pdC1idG5faGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3NlYXJjaC1ibGFjay5zdmdcIikgbm8tcmVwZWF0IDUwJSA1MCU7XG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzVweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgb3BhY2l0eTogMC4zO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc2VhcmNoX19zdWJtaXQtYnRuX2NvbnRlbnQ6aG92ZXIsXG4uc2VhcmNoX19zdWJtaXQtYnRuX2hlYWRlcjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTUwcHgpIHtcbiAgLnNlYXJjaF9fc3VibWl0LWJ0bl9jb250ZW50LFxuICAuc2VhcmNoX19zdWJtaXQtYnRuX2hlYWRlciB7XG4gICAgcmlnaHQ6IDM4cHg7XG4gIH1cbn1cbi5zZWFyY2hfX2Nsb3NlLWJ0bl9oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjZjAwIHVybChcIi4uL2ltZy9jbG9zZS1idG4ucG5nXCIpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICB3aWR0aDogNTlweDtcbiAgaGVpZ2h0OiA3MnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTcycHg7XG4gIHJpZ2h0OiAtMTBweDtcbiAgei1pbmRleDogMztcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc2VhcmNoX19jbG9zZS1idG5faGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDQwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAuc2VhcmNoX19jbG9zZS1idG5faGVhZGVyIHtcbiAgICByaWdodDogLTE4cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zZWFyY2hfX2Nsb3NlLWJ0bl9oZWFkZXIge1xuICAgIGhlaWdodDogNTBweDtcbiAgICB0b3A6IC01MHB4O1xuICB9XG59XG4uc2VhcmNoLWJveCB7XG4gIHBhZGRpbmc6IDE1cHggMTAycHggMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAuc2VhcmNoLWJveCB7XG4gICAgcGFkZGluZzogMTVweCA1MXB4IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5zZWFyY2gtYm94IHtcbiAgICBwYWRkaW5nOiAxNXB4IDIxcHggMDtcbiAgfVxufVxuLnNlYXJjaF9jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogNDFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnNlYXJjaF9fc3VibWl0LWJ0bl9jb250ZW50IHtcbiAgcmlnaHQ6IDA7XG59XG4uZmF2b3JpdGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiA2MHB4O1xuICB6LWluZGV4OiAyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgLmZhdm9yaXRlcyB7XG4gICAgcmlnaHQ6IDEzNnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZmF2b3JpdGVzIHtcbiAgICB0b3A6IDdweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0SDogNDc5cHgpIHtcbiAgLmZhdm9yaXRlcyB7XG4gICAgcmlnaHQ6IDEwMHB4O1xuICB9XG59XG4uZmF2b3JpdGVzX19idG4ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZmF2b3JpdGUtd2hpdGUuc3ZnXCIpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMzVweDtcbn1cbi5mYXZvcml0ZXNfX2NvdW50ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmUwMDAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtM3B4O1xuICByaWdodDogLTNweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjUzODQ2MTU0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMjMycHg7XG4gIC8qaGVpZ2h0OiAyNjJweDsqL1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7Ki9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xuICAtbXMtZmxleC1vcmRlcjogMDtcbiAgLXdlYmtpdC1vcmRlcjogMDtcbiAgb3JkZXI6IDA7XG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gIC13ZWJraXQtZmxleDogMCAxIGF1dG87XG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcbiAgZmxleDogMCAxIGF1dG87XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogYXV0bztcbiAgLW1zLWFsaWduLXNlbGY6IGF1dG87XG4gIGFsaWduLXNlbGY6IGF1dG87XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmZvb3RlciB7XG4gICAgLypoZWlnaHQ6IDYzMHB4OyovXG4gICAgcGFkZGluZy10b3A6IDYzMHB4O1xuICB9XG59XG4uZm9vdGVyX19vcmdhbml6YXRpb25zIHtcbiAgbWFyZ2luOiAwIDM1cHg7XG4gIHBhZGRpbmc6IDEycHggMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzYzNjM2M7XG59XG4uZm9vdGVyX19vcmdhbml6YXRpb25zLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTiBQcm9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmZvb3Rlcl9fb3JnYW5pemF0aW9ucy10aXRsZTo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiAtMjVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgcm90YXRlKDEzNWRlZyk7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLXRpdGxlOjpiZWZvcmUge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgxMzVkZWcpO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjMycHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5mb290ZXJfX29yZ2FuaXphdGlvbnMtdGl0bGUuaXMtb3BlbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlcl9fb3JnYW5pemF0aW9ucy10aXRsZS5pcy1vcGVuIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB9XG59XG4uZm9vdGVyX19vcmdhbml6YXRpb25zLXRpdGxlLmlzLW9wZW46OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZmZmZmZmO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlcl9fb3JnYW5pemF0aW9ucy10aXRsZS5pcy1vcGVuOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC02cHgsIDhweCkgcm90YXRlKC00NWRlZyk7XG4gIH1cbn1cbi5mb290ZXJfX29yZ2FuaXphdGlvbnMtaW1hZ2Uge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5mb290ZXJfX29yZ2FuaXphdGlvbnMtaW1hZ2VfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIyNXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDE1MTQtOC5wbmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1MTRweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDIyNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDM2cHgpIHtcbiAgLmZvb3Rlcl9fb3JnYW5pemF0aW9ucy1pbWFnZV9fd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3MvaW1hZ2VzL3Byb2hpYml0ZWQtb3JnYW5pemF0aW9ucy90eHQxNDM2LTgucG5nXCIpO1xuICAgIGhlaWdodDogMjM5cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNDBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDEyNDAtOC5wbmdcIik7XG4gICAgaGVpZ2h0OiAyODJweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7XG4gIC5mb290ZXJfX29yZ2FuaXphdGlvbnMtaW1hZ2VfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9zL2ltYWdlcy9wcm9oaWJpdGVkLW9yZ2FuaXphdGlvbnMvdHh0MTE5MC04LnBuZ1wiKTtcbiAgICBoZWlnaHQ6IDI4MnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDkwcHgpIHtcbiAgLmZvb3Rlcl9fb3JnYW5pemF0aW9ucy1pbWFnZV9fd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAyNjJweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5mb290ZXJfX29yZ2FuaXphdGlvbnMtaW1hZ2VfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9zL2ltYWdlcy9wcm9oaWJpdGVkLW9yZ2FuaXphdGlvbnMvdHh0MTAyNC04LnBuZ1wiKTtcbiAgICBoZWlnaHQ6IDMyM3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NDBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDI3NXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDI1NXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDc2OC04LnBuZ1wiKTtcbiAgICBoZWlnaHQ6IDQwN3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MzBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDM3NXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NjBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDM0NXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDMyNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjhweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDU2OC04LnBuZ1wiKTtcbiAgICBoZWlnaHQ6IDUyNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MjBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDQ3NXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDQyNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MzZweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDQwNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MTBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDMyMC04LnBuZ1wiKTtcbiAgICBoZWlnaHQ6IDExOTVweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkwcHgpIHtcbiAgLmZvb3Rlcl9fb3JnYW5pemF0aW9ucy1pbWFnZV9fd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDk1cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM3MHB4KSB7XG4gIC5mb290ZXJfX29yZ2FuaXphdGlvbnMtaW1hZ2VfX3dyYXBwZXIge1xuICAgIGhlaWdodDogMTAwNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNTBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDkzNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMzVweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDg5NXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xuICAuZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlX193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDc5NXB4O1xuICB9XG59XG4uZm9vdGVyX19vcmdhbml6YXRpb25zLWltYWdlLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jb3B5cmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTUwcHg7XG4gIGxlZnQ6IDczcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuY29weXJpZ2h0IHtcbiAgICB3aWR0aDogMzEycHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRvcDogMzk3cHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5jYXJkLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4uY2FyZC1saXN0X19vdmVybGF5LWxpbmsge1xuICB6LWluZGV4OiAyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5jYXJkLWxpc3RfX21lZGlhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcmQtbGlzdF9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLmNhcmRfX2xpbmssXG4uY2FyZC1saXN0X19saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uY2FyZF9fbGluazpob3Zlcixcbi5jYXJkLWxpc3RfX2xpbms6aG92ZXIge1xuICBjb2xvcjogIzYzYmQyODtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cbi5jYXJkLWxpc3RfcG9wdWxhciB7XG4gIGZvbnQtc2l6ZTogMDtcbn1cbi5jYXJkLWxpc3RfX2NvbnRlbnQsXG4uY2FyZC1saXN0X19kYXRlLFxuLmNhcmQtbGlzdF9fY2F0ZWdvcnksXG4uY2FyZC1saXN0X19oZWFkaW5nIHtcbiAgei1pbmRleDogMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uY2FyZC1saXN0X19saW5rIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4uY2FyZC1saXN0X19pdGVtX3BvcHVsYXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAzMy4zMzMzJTtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTguNzUlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5jYXJkLWxpc3RfX2l0ZW1fcG9wdWxhcjpob3ZlciB7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cbiAgLmNhcmQtbGlzdF9faXRlbV9wb3B1bGFyOmhvdmVyIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX21vdmllLFxuICAuY2FyZC1saXN0X19pdGVtX3BvcHVsYXI6aG92ZXIgLmNhcmQtbGlzdF9fZmF2b3JpdGVfcG9wdWxhcixcbiAgLmNhcmQtbGlzdF9faXRlbV9wb3B1bGFyOmhvdmVyIC5jYXJkLWxpc3RfX2NvbnRlbnRfcG9wdWxhciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5jYXJkLWxpc3RfX2l0ZW1fcG9wdWxhcjpob3ZlciAuY2FyZC1saXN0X19jb250ZW50X3BvcHVsYXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCA3NHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgfVxuICAuY2FyZC1saXN0X19pdGVtX3BvcHVsYXI6aG92ZXIgLmNhcmQtbGlzdF9faGVhZGluZ19wb3B1bGFyIHtcbiAgICB0b3A6IDMyJTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG4gIC5jYXJkLWxpc3RfX2l0ZW1fcG9wdWxhcjpob3ZlciAuY2FyZC1saXN0X19ob25vcl9wb3B1bGFyLFxuICAuY2FyZC1saXN0X19pdGVtX3BvcHVsYXI6aG92ZXIgLmNhcmQtbGlzdF9fcHJlbWllcl9wb3B1bGFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG4gIC5jYXJkLWxpc3RfX2l0ZW1fcG9wdWxhcjpob3ZlciAuY2FyZC1saXN0X19pbWdfcG9wdWxhciB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgLmNhcmQtbGlzdF9faXRlbV9wb3B1bGFyOmhvdmVyIC5jYXJkLWxpc3RfX2RhdGVfcG9wdWxhciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuY2FyZC1saXN0X19pdGVtX3BvcHVsYXIge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZy1ib3R0b206IDM2LjY0NzcyNzI3JTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNhcmQtbGlzdF9faXRlbV9wb3B1bGFyIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jYXJkLWxpc3RfX2l0ZW1fcG9wdWxhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2NvbnRlbnRfcG9wdWxhciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5jYXJkLWxpc3RfX21lZGlhX3BvcHVsYXIge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX21lZGlhX3BvcHVsYXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3My4yOTU0NTQ1NSU7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jYXJkLWxpc3RfX21lZGlhX3BvcHVsYXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2ltZ19wb3B1bGFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8qbWluLXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7Ki9cbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgb3BhY2l0eTogMC40O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmNhcmQtbGlzdF9faW1nX3BvcHVsYXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogdW5zZXQ7XG4gICAgbGVmdDogLTE1JTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmNhcmQtbGlzdF9faW1nX3BvcHVsYXIge1xuICAgIC8qaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogdW5zZXQ7Ki9cbiAgICBsZWZ0OiAwO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZC1saXN0X19pbWdfcG9wdWxhciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLmNhcmQtbGlzdF9faXRlbV9ncm91cF9wb3B1bGFyIC5jYXJkLWxpc3RfX2ltZ19wb3B1bGFyIHtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiA1MCU7XG59XG4uY2FyZC1saXN0X19pdGVtX2dyb3VwX3BvcHVsYXIgLmNhcmQtbGlzdF9faW1nX3BvcHVsYXI6bnRoLWNoaWxkKDEpIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cbi5jYXJkLWxpc3RfX2l0ZW1fZ3JvdXBfcG9wdWxhciAuY2FyZC1saXN0X19pbWdfcG9wdWxhcjpudGgtY2hpbGQoMikge1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG59XG4uY2FyZC1saXN0X19pdGVtX2dyb3VwX3BvcHVsYXIgLmNhcmQtbGlzdF9faW1nX3BvcHVsYXI6bnRoLWNoaWxkKDMpIHtcbiAgbGVmdDogYXV0bztcbiAgdG9wOiBhdXRvO1xufVxuLmNhcmQtbGlzdF9faXRlbV9ncm91cF9wb3B1bGFyIC5jYXJkLWxpc3RfX2ltZ19wb3B1bGFyOm50aC1jaGlsZCg0KSB7XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IGF1dG87XG59XG4uY2FyZC1saXN0X19jYXRlZ29yeV9wb3B1bGFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDguNSU7XG4gIGxlZnQ6IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNhcmQtbGlzdF9fY2F0ZWdvcnlfcG9wdWxhciB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNhcmQtbGlzdF9fY2F0ZWdvcnlfcG9wdWxhciB7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2hlYWRpbmdfcG9wdWxhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MSU7XG4gIGxlZnQ6IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXNpemU6IDIuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX2hlYWRpbmdfcG9wdWxhciB7XG4gICAgcGFkZGluZzogM3B4IDE1cHggOXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICB9XG59XG4uY2FyZC1saXN0X19kYXRlX3BvcHVsYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogOC41JTtcbiAgbGVmdDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZC1saXN0X19kYXRlX3BvcHVsYXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG59XG4uY2FyZC1saXN0X19mYXZvcml0ZV9tb3ZpZSxcbi5jYXJkLWxpc3RfX2Zhdm9yaXRlX3Byb2dyYW1zLFxuLmNhcmQtbGlzdF9fZmF2b3JpdGVfcG9wdWxhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHotaW5kZXg6IDQ7XG59XG4uY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX21vdmllLFxuLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZV9wcm9ncmFtcyxcbi5jYXJkLWxpc3RfX2l0ZW1fZmF2b3JpdGUgLmNhcmQtbGlzdF9fZmF2b3JpdGVfcG9wdWxhcixcbi5jYXJkLWxpc3RfX2l0ZW1fZmF2b3JpdGUgLmNhcmQtbGlzdF9fZmF2b3JpdGVfbW92aWUsXG4uY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX3Byb2dyYW1zLFxuLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZV9wb3B1bGFyIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuY2FyZC1saXN0X19mYXZvcml0ZV9tb3ZpZTphZnRlcixcbiAgLmNhcmQtbGlzdF9fZmF2b3JpdGVfcHJvZ3JhbXM6YWZ0ZXIsXG4gIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX3BvcHVsYXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfQlNC+0LHQsNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtSc7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHggMCAwIDZweDtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjMzMzMzMzMzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgei1pbmRleDogMjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX21vdmllOmFmdGVyLFxuICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX3Byb2dyYW1zOmFmdGVyLFxuICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX3BvcHVsYXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfQo9C00LDQu9C40YLRjCDQuNC3INC40LfQsdGA0LDQvdC90L7Qs9C+JztcbiAgICBiYWNrZ3JvdW5kOiAjZmYzYzAwO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmM2MwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuY2FyZC1saXN0X19mYXZvcml0ZV9tb3ZpZTpob3ZlcjphZnRlcixcbiAgLmNhcmQtbGlzdF9fZmF2b3JpdGVfcHJvZ3JhbXM6aG92ZXI6YWZ0ZXIsXG4gIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX3BvcHVsYXI6aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX21vdmllLFxuICAuY2FyZC1saXN0X19mYXZvcml0ZV9wcm9ncmFtcyxcbiAgLmNhcmQtbGlzdF9fZmF2b3JpdGVfcG9wdWxhciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG4uY2FyZC1saXN0X19zdW1tYXJ5X3BvcHVsYXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBib3R0b206IDEzJTtcbiAgbGVmdDogMjhweDtcbiAgcmlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiAjMDAwO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuLmNhcmQtbGlzdF9fc3VtbWFyeV9wb3B1bGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGp4emRtY2dlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjNhV1IwYUQwaU1UQXdKU0lnYUdWcFoyaDBQU0l4TURBbElpQjJhV1YzUW05NFBTSXdJREFnTVNBeElpQndjbVZ6WlhKMlpVRnpjR1ZqZEZKaGRHbHZQU0p1YjI1bElqNDhiR2x1WldGeVIzSmhaR2xsYm5RZ2FXUTlJbXhsYzNOb1lYUXRaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXdKU0lnZVRJOUlqRXdNQ1VpUGp4emRHOXdJRzltWm5ObGREMGlNQ1VpSUhOMGIzQXRZMjlzYjNJOUluSm5ZaWd5TlRVc01qVTFMREkxTlNraUlITjBiM0F0YjNCaFkybDBlVDBpTUNJdlBqeHpkRzl3SUc5bVpuTmxkRDBpTVRBd0pTSWdjM1J2Y0MxamIyeHZjajBpY21kaUtESTFOU3d5TlRVc01qVTFLU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrUEM5c2FXNWxZWEpIY21Ga2FXVnVkRDQ4Y21WamRDQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlNU0lnYUdWcFoyaDBQU0l4SWlCbWFXeHNQU0oxY213b0kyeGxjM05vWVhRdFoyVnVaWEpoZEdWa0tTSWdMejQ4TDNOMlp6ND0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjU1LDI1NSwyNTUsMCksIHJnYmEoMjU1LDI1NSwyNTUsMSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDApLCByZ2JhKDI1NSwyNTUsMjU1LDEpKTtcbiAgaGVpZ2h0OiAxNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uY2FyZC1saXN0X19ob25vcl9wb3B1bGFyLFxuLmNhcmQtbGlzdF9fcHJlbWllcl9wb3B1bGFyIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBjb2xvcjogIzRmY2QwMDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX2hvbm9yX3BvcHVsYXIsXG4gIC5jYXJkLWxpc3RfX3ByZW1pZXJfcG9wdWxhciB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG59XG4uY2FyZC1saXN0X19pdGVtX3Byb2dyYW1zIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcmQtbGlzdF9faXRlbV9wcm9ncmFtczphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG4uY2FyZC1saXN0X19pdGVtX3Byb2dyYW1zOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyOiAwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5jYXJkLWxpc3RfX2l0ZW1fcHJvZ3JhbXM6aG92ZXIgLmNhcmQtbGlzdF9fZmF2b3JpdGVfbW92aWUsXG4gIC5jYXJkLWxpc3RfX2l0ZW1fcHJvZ3JhbXM6aG92ZXIgLmNhcmQtbGlzdF9fZmF2b3JpdGVfcHJvZ3JhbXMge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuLmNhcmQtbGlzdF9faXRlbV9wcm9ncmFtcyBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMC44ZW07XG59XG4uY2FyZC1saXN0X19tZWRpYV9wcm9ncmFtcyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzclO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuY2FyZC1saXN0X19tZWRpYV9wcm9ncmFtcyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2ltYWdlX3Byb2dyYW1zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcmQtbGlzdF9faW1nX3Byb2dyYW1zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG59XG4uY2FyZC1saXN0X19jb250ZXh0X3Byb2dyYW1zIHtcbiAgcGFkZGluZzogMS45JSAyLjUlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmNhcmQtbGlzdF9fY29udGV4dF9wcm9ncmFtcyB7XG4gICAgcGFkZGluZzogMyUgMyUgNSU7XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2NhdGVnb3J5X3Byb2dyYW1zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDM7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZC1saXN0X19jYXRlZ29yeV9wcm9ncmFtcyB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuY2FyZC1saXN0X19jYXRlZ29yeV9wcm9ncmFtcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uY2FyZC1saXN0X19oZWFkaW5nX3Byb2dyYW1zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXNpemU6IDMuNHJlbTtcbiAgY29sb3I6ICMwMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMzMwcHgpIHtcbiAgLmNhcmQtbGlzdF9faGVhZGluZ19wcm9ncmFtcyB7XG4gICAgZm9udC1zaXplOiAyN3B4O1xuICAgIGZvbnQtc2l6ZTogMi43cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5jYXJkLWxpc3RfX2hlYWRpbmdfcHJvZ3JhbXMge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuY2FyZC1saXN0X19oZWFkaW5nX3Byb2dyYW1zIHtcbiAgICBmb250LXNpemU6IDIzcHg7XG4gICAgZm9udC1zaXplOiAyLjNyZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jYXJkLWxpc3RfX2hlYWRpbmdfcHJvZ3JhbXMge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5jYXJkLWxpc3RfX2hlYWRpbmdfcHJvZ3JhbXMge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmNhcmQtbGlzdF9faGVhZGluZ19wcm9ncmFtcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmNhcmQtbGlzdF9fZGF0ZV9wcm9ncmFtcyB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICBjb2xvcjogIzllOWU5ZTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuY2FyZC1saXN0X19kYXRlX3Byb2dyYW1zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5jYXJkLWxpc3RfX3N1bW1hcnlfcHJvZ3JhbXMge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5jYXJkLWxpc3RfX3N1bW1hcnlfcHJvZ3JhbXMgcDpsYXN0LWNoaWxkLFxuLmNhcmQtbGlzdF9fc3VtbWFyeV9wcm9ncmFtczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmNhcmQtbGlzdF9fc3VtbWFyeV9wcm9ncmFtcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX21vdmllLFxuLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX3BvcHVsYXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmViZWJlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzVweDtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5jYXJkLWxpc3RfX2Zhdm9yaXRlLWJ0bl9tb3ZpZTpiZWZvcmUsXG4uY2FyZC1saXN0X19mYXZvcml0ZS1idG5fcG9wdWxhcjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Zhdm9yaXRlLWJsYWNrLnN2Z1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMnB4IDIzcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwLjM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbio6aG92ZXIgPiAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fbW92aWUsXG4qOmhvdmVyID4gLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX3BvcHVsYXIge1xuICBib3JkZXItY29sb3I6ICMzMzM7XG59XG4qOmhvdmVyID4gLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX21vdmllOmJlZm9yZSxcbio6aG92ZXIgPiAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fcG9wdWxhcjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fbW92aWUsXG4uY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlLWJ0bl9wb3B1bGFyIHtcbiAgYmFja2dyb3VuZDogI2ZmM2MwMDtcbiAgYm9yZGVyLWNvbG9yOiAjZmYzYzAwO1xufVxuLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fbW92aWU6YmVmb3JlLFxuLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fcG9wdWxhcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZmF2b3JpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE5cHggMTlweDtcbiAgb3BhY2l0eTogMTtcbn1cbi5jYXJkLWxpc3RfX2l0ZW1fZmF2b3JpdGUgLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX21vdmllOmFmdGVyLFxuLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fcG9wdWxhcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZmF2b3JpdGUtZGVsLXdoaXRlLnN2Z1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMnB4IDIzcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4qOmhvdmVyID4gLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAuY2FyZC1saXN0X19mYXZvcml0ZS1idG5fbW92aWU6YmVmb3JlLFxuKjpob3ZlciA+IC5jYXJkLWxpc3RfX2l0ZW1fZmF2b3JpdGUgLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX3BvcHVsYXI6YmVmb3JlIHtcbiAgb3BhY2l0eTogMDtcbn1cbio6aG92ZXIgPiAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlLWJ0bl9tb3ZpZTphZnRlcixcbio6aG92ZXIgPiAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5jYXJkLWxpc3RfX2Zhdm9yaXRlLWJ0bl9wb3B1bGFyOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jYXJkX21vdmllIC5qdy1jb250cm9sYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY2FyZF9fbmF2aV9tb3ZpZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTllOWU5O1xuICBwYWRkaW5nOiAwIDE0NHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX19uYXZpX21vdmllIHtcbiAgICBwYWRkaW5nOiAwIDU1cHg7XG4gIH1cbn1cbi5jYXJkX19uYXZpX21vdmllLXdpdGhvdXQtc2xpZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgcGFkZGluZzogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuY2FyZF9fbmF2aV9tb3ZpZS13aXRob3V0LXNsaWRlci5maXhlZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNzJweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDk7XG4gIH1cbiAgLmNhcmRfX25hdmlfbW92aWUtd2l0aG91dC1zbGlkZXIuZml4ZWQgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiA2N3B4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZF9fbmF2aV9tb3ZpZS13aXRob3V0LXNsaWRlciB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuLmNhcmRfX25hdmlfYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jYXJkX19uYXZpLWNvbnRleHRfbW92aWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY2FyZF9fbmF2aS1uZXh0X21vdmllLFxuLmNhcmRfX25hdmktcHJldl9tb3ZpZSB7XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKFwiLi4vaW1nL2Fycm93LWxlZnQucG5nXCIpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTllOWU5O1xuICB3aWR0aDogMTQ0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZF9fbmF2aS1uZXh0X21vdmllLFxuICAuY2FyZF9fbmF2aS1wcmV2X21vdmllIHtcbiAgICB3aWR0aDogNTVweDtcbiAgfVxufVxuLmNhcmRfX25hdmktbmV4dF9tb3ZpZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hcnJvdy1yaWdodC5wbmdcIik7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTllOWU5O1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbn1cbi5jYXJkX19uYXZpLWxpc3RfbW92aWUge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5jYXJkX19uYXZpX21vdmllX2FuaW1hdGUge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbn1cbi5jYXJkX19uYXZpLWl0ZW1fbW92aWUge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlOWU5ZTk7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHdpZHRoOiAyMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgY29sb3I6ICM3MTcxNzE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDY2cHg7XG59XG4uY2FyZF9fbmF2aV9tb3ZpZS13aXRob3V0LXNsaWRlciAuY2FyZF9fbmF2aS1pdGVtX21vdmllIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5jYXJkX19uYXZpLWxpbmtfbW92aWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA2NnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmNhcmRfX25hdmlfbW92aWUtd2l0aG91dC1zbGlkZXIgLmNhcmRfX25hdmktbGlua19tb3ZpZSB7XG4gIHBhZGRpbmc6IDE0cHggMDtcbn1cbi5jYXJkX19uYXZpLWxpbmtfbW92aWU6aG92ZXIge1xuICBjb2xvcjogIzAwMDtcbn1cbnNwYW4uY2FyZF9fbmF2aS1saW5rX21vdmllIHtcbiAgb3BhY2l0eTogMC41O1xufVxuc3Bhbi5jYXJkX19uYXZpLWxpbmtfbW92aWU6aG92ZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuY2FyZF9fbmF2aS1saW5rLXRleHRfbW92aWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5jYXJkX19uYXZpLWxpbmstdGV4dC1kYXRlX21vdmllIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZF9fbmF2aS1saW5rLXRleHQtZGF0ZV9tb3ZpZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuY2FyZF9fbmF2aS1saW5rLXRleHQtZGF0ZV9tb3ZpZSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5jYXJkX19uYXZpLWxpbmstdGV4dC1zaG9ydF9tb3ZpZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNhcmRfX25hdmktbGlua19hY3RpdmVfbW92aWUge1xuICBjb2xvcjogIzYzYmQyYjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY2FyZF9fbmF2aS1saW5rX2FjdGl2ZV9tb3ZpZTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvdHJpYW5nbGUucG5nJykgbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEycHg7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xufVxuLmNhcmRfX25hdmlfbW92aWUtd2l0aG91dC1zbGlkZXIgLmNhcmRfX25hdmktbGlua19hY3RpdmVfbW92aWU6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jYXJkX19uYXZpLWxpbmtfYWN0aXZlX21vdmllOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6ICM2M2JkMmI7XG4gIGhlaWdodDogNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uY2FyZF9fbWVkaWFfbW92aWUge1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wYWdlX21vdmllLW1vZGUgLmNhcmRfX21lZGlhX21vdmllIHtcbiAgei1pbmRleDogMTAxO1xufVxuLmNhcmRfX2RvdWJsZS10YXAtYXJlYSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDMycHg7XG4gIHdpZHRoOiAzMCU7XG59XG4uY2FyZF9fZG91YmxlLXRhcC1hcmVhLS1sZWZ0IHtcbiAgbGVmdDogMDtcbn1cbi5jYXJkX19kb3VibGUtdGFwLWFyZWEtLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7XG59XG4uY2FyZF9fbWVkaWEtaW1nX21vdmllIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbi5jYXJkX19tZWRpYS1wbGF5LWJ0bl9tb3ZpZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wbGF5LnBuZ1wiKSBuby1yZXBlYXQ7XG4gIHdpZHRoOiA5NnB4O1xuICBoZWlnaHQ6IDc3cHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG59XG4uY2FyZF9fcGFuZWxfbW92aWUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZzogMCAzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNhcmRfX3BhbmVsX21vdmllIHtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jYXJkX19wYW5lbF9tb3ZpZSB7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gIH1cbn1cbi5jYXJkX19wYW5lbF9tb3ZpZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjbGVhcjogYm90aDtcbiAgZGlzcGxheTogdGFibGU7XG59XG4uY2FyZF9fcGFuZWxfbW92aWUgLmgxIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMCA0MHB4IDAgMDtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBmb250LXNpemU6IDRyZW07XG4gIGxpbmUtaGVpZ2h0OiA3MnB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmNhcmRfX3BhbmVsX21vdmllIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5jYXJkX19oZWFkaW5nX21vdmllIHtcbiAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgZm9udC1zaXplOiA1MHB4O1xuICBmb250LXNpemU6IDVyZW07XG4gIGNvbG9yOiAjMDAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDlweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZF9faGVhZGluZ19tb3ZpZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1cHg7XG4gIH1cbn1cbi5jYXJkX19jb250ZXh0X21vdmllIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gIHBhZGRpbmc6IDMwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNhcmRfX2NvbnRleHRfbW92aWUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cbn1cbi5jYXJkX19zdW1tYXJ5X21vdmllIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44OSk7XG4gIGxpbmUtaGVpZ2h0OiAyN3B4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNhcmRfX3N1bW1hcnlfbW92aWUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG4uY2FyZF9fY2F0ZWdvcnlfbW92aWUge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDIxJTtcbiAgcGFkZGluZzogMTVweCAwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBjb2xvcjogIzAwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjk0MTE3NjU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNhcmRfX2NhdGVnb3J5X21vdmllIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDAgMCAxNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuY2FyZF9fY2F0ZWdvcnlfbW92aWUge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMCAxNXB4O1xuICB9XG59XG4uY2FyZF9fY29udGV4dC1pbl9tb3ZpZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDAgNjBweCAwIDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNhcmRfX2NvbnRleHQtaW5fbW92aWUge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cbi5jYXJkX19pbmZvX21vdmllIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMjElO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jYXJkX19pbmZvX21vdmllIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDAgMCAxNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jYXJkX19pbmZvX21vdmllIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuLmNhcmRfX2NvdW50LWNvbW1lbnRzX21vdmllIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2NvbW1lbnRzLnN2Z1wiKSBuby1yZXBlYXQgMCA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjFweDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIzMDc2OTIzO1xufVxuLmNhcmRfX2NvdW50LXZpZXdzX21vdmllIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3ZpZXdzLnN2Z1wiKSBuby1yZXBlYXQgMCA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTdweCA5cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMjFweDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIzMDc2OTIzO1xufVxuLmNhcmRfX2NvdW50LWRhdGVfbW92aWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjMwNzY5MjM7XG59XG4uY2FyZF9fdGFnc19tb3ZpZSB7XG4gIHBhZGRpbmc6IDUwcHggMCAwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNhcmRfX3RhZ3NfbW92aWUge1xuICAgIHBhZGRpbmc6IDE1cHggMCAwO1xuICB9XG59XG4uY2FyZF9fdGFncy1saW5rX21vdmllIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLmNhcmRfX3RhZ3MtbGlua19tb3ZpZTpob3ZlciB7XG4gIGNvbG9yOiByZWQ7XG59XG4uY2FyZF9fdGFncy1oZWFkaW5nX21vdmllIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjk0MTE3NjU7XG59XG4uY2FyZF9fdGFncy1pdGVtX21vdmllIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogOXB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMS4yOTQxMTc2NTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX190YWdzLWl0ZW1fbW92aWUge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgfVxufVxuLmNhcmRfX2gzX21vdmllIHtcbiAgbWFyZ2luOiA0MHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX19oM19tb3ZpZSB7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuLmNhcmRfX21lZGlhLWNvbnRleHQge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC1tb3otYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLXRvcDogN3B4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jYXJkX19tZWRpYS1jb250ZXh0IHtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cbn1cbi5jYXJkX2hvbm9yIHtcbiAgaGVpZ2h0OiA0MThweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgcGFkZGluZzogMCAzMHB4IDFweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAuY2FyZF9ob25vciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLW1vei1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgfVxufVxuLmNhcmRfX21lZGlhX2hvbm9yIHtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHdpZHRoOiA1MDBweDtcbiAgbWluLXdpZHRoOiA1MDBweDtcbiAgaGVpZ2h0OiA0MThweDtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmNhcmRfX21lZGlhX2hvbm9yIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuLmNhcmRfX21lZGlhX2hvbm9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTAwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwwKSwgcmdiYSgyNTUsMjU1LDI1NSwxKSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTFweDtcbiAgYm90dG9tOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jYXJkX19tZWRpYV9ob25vcjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LDI1NSwyNTUsMCksIHJnYmEoMjU1LDI1NSwyNTUsMSkpO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAtMXB4O1xuICB9XG59XG4uY2FyZF9faGVhZGluZ19ob25vciB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgZm9udC1zaXplOiA0cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgLXdlYmtpdC1mbGV4OiAwIDEgYXV0bztcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuICBmbGV4OiAwIDEgYXV0bztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAuY2FyZF9faGVhZGluZ19ob25vciB7XG4gICAgZm9udC1zaXplOiA0MnB4O1xuICAgIGZvbnQtc2l6ZTogNC4ycmVtO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNhcmRfX2hlYWRpbmdfaG9ub3Ige1xuICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICBmb250LXNpemU6IDMuNHJlbTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNhcmRfX2hlYWRpbmdfaG9ub3Ige1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBmb250LXNpemU6IDRyZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX19oZWFkaW5nX2hvbm9yIHtcbiAgICBmb250LXNpemU6IDM1cHg7XG4gICAgZm9udC1zaXplOiAzLjVyZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jYXJkX19oZWFkaW5nX2hvbm9yIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICB9XG59XG4uY2FyZF9fc3VtbWFyeS13cmFwcGVyX2hvbm9yIHtcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bztcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4uY2FyZF9fc3VtbWFyeV9ob25vciB7XG4gIG1hcmdpbi1ib3R0b206IDI3cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiA4OTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNhcmRfX3N1bW1hcnlfaG9ub3Ige1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmNhcmRfX3N1bW1hcnlfaG9ub3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX19zdW1tYXJ5X2hvbm9yIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY2FyZF9fbWVkYWwtd3JhcHBlcl9ob25vciB7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBtYXJnaW46IDAgLTMwcHg7XG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gIC13ZWJraXQtZmxleDogMCAxIGF1dG87XG4gIC1tcy1mbGV4OiAwIDEgYXV0bztcbiAgZmxleDogMCAxIGF1dG87XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgLmNhcmRfX21lZGFsLXdyYXBwZXJfaG9ub3Ige1xuICAgIG1hcmdpbjogMCAtMjBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gIC5jYXJkX19tZWRhbC13cmFwcGVyX2hvbm9yIHtcbiAgICBtYXJnaW46IDA7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLW1vei1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLmNhcmRfX21lZGFsX2hvbm9yIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIHBhZGRpbmc6IDAgMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1wYWNrOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIC1tcy1mbGV4LXBhY2s6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gIC5jYXJkX19tZWRhbF9ob25vciB7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLmNhcmRfX21lZGFsX2hvbm9yIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICB9XG4gIC5jYXJkX19tZWRhbF9ob25vcjpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuLmNhcmRfX21lZGFsX2hvbm9yOm50aC1jaGlsZCgyKTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWVlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTEwcHg7XG4gIGJvdHRvbTogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAuY2FyZF9fbWVkYWxfaG9ub3I6bnRoLWNoaWxkKDIpOmJlZm9yZSB7XG4gICAgbGVmdDogLTVweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gIC5jYXJkX19tZWRhbF9ob25vcjpudGgtY2hpbGQoMik6YmVmb3JlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jYXJkX19tZWRhbF9ob25vcjpudGgtY2hpbGQoMik6YmVmb3JlIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jYXJkX19tZWRhbF9ob25vciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG4uY2FyZF9fbWVkYWwtbWVkaWFfaG9ub3Ige1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpIHtcbiAgLmNhcmRfX21lZGFsLW1lZGlhX2hvbm9yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLmNhcmRfX21lZGFsLW1lZGlhX2hvbm9yIHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX19tZWRhbC1tZWRpYV9ob25vciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG59XG4uY2FyZF9fbWVkYWwtbWVkaWEtaW1nX2hvbm9yIHtcbiAgbWF4LWhlaWdodDogOTBweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MzlweCkge1xuICAuY2FyZF9fbWVkYWwtbWVkaWEtaW1nX2hvbm9yIHtcbiAgICBtYXgtaGVpZ2h0OiA2MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLmNhcmRfX21lZGFsLW1lZGlhLWltZ19ob25vciB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWF4LWhlaWdodDogOTAlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uY2FyZF9fbWVkYWwtY2F0ZWdvcnlfaG9ub3Ige1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpIHtcbiAgLmNhcmRfX21lZGFsLWNhdGVnb3J5X2hvbm9yIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkX19tZWRhbC1jYXRlZ29yeV9ob25vciB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDRweDtcbiAgfVxufVxuLmNhcmRfX21lZGFsLW5hbWVfaG9ub3Ige1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogIzgwODA4MDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5jYXJkLWxpc3RfbW92aWUge1xuICBtYXJnaW46IC0zMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jYXJkLWxpc3RfbW92aWUge1xuICAgIG1hcmdpbjogLTIwcHg7XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2l0ZW1fbW92aWUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwYWRkaW5nLWxlZnQ6IDE1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcmQtbGlzdF9faXRlbV9tb3ZpZTphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG4uY2FyZC1saXN0X19pdGVtX21vdmllOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyOiAwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmNhcmQtbGlzdF9faXRlbV9tb3ZpZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA4OHB4O1xuICB9XG59XG4uY2FyZC1saXN0X19pdGVtX21vdmllOmhvdmVyIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX21vdmllIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX2l0ZW1fbW92aWUtYWN0aXZlOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogIzYzYmQyYjtcbiAgICB3aWR0aDogOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX2l0ZW1fbW92aWUtYWN0aXZlIC5jYXJkLWxpc3RfX3RpbWVfbW92aWU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfQkiDQrdCk0JjQoNCVJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNvbG9yOiAjNjNiZDJiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuLmNhcmQtbGlzdF9faXRlbV9tb3ZpZS1hY3RpdmUgLmNhcmQtbGlzdF9faW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG59XG4uY2FyZC1saXN0X19pdGVtX21vdmllLWFjdGl2ZSAuY2FyZC1saXN0X19tZWRpYV9tb3ZpZTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogIzYzYmQyYjtcbiAgd2lkdGg6IDhweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC04cHg7XG4gIGJvdHRvbTogMDtcbn1cbi5jYXJkLWxpc3RfX2l0ZW1fbW92aWUtYWN0aXZlIC5jYXJkLWxpc3RfX21lZGlhX21vdmllOmFmdGVyIHtcbiAgY29udGVudDogJ9CSINCt0KTQmNCg0JUnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbn1cbi5jYXJkLWxpc3RfX21lZGlhX21vdmllIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAzNyU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX21lZGlhX21vdmllIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY2FyZC1saXN0X19pbWFnZV9tb3ZpZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJkLWxpc3RfX2ltZ19tb3ZpZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xufVxuLmNhcmQtbGlzdF9fY29udGV4dF9tb3ZpZSB7XG4gIHBhZGRpbmc6IDIlIDIuNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZC1saXN0X19jb250ZXh0X21vdmllIHtcbiAgICBwYWRkaW5nOiA1JSAyLjUlO1xuICB9XG59XG4uY2FyZC1saXN0X19jYXRlZ29yeV9tb3ZpZSB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jYXJkLWxpc3RfX2NhdGVnb3J5X21vdmllIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbi5jYXJkLWxpc3RfX2l0ZW06aG92ZXIgLmNhcmQtbGlzdF9faGVhZGluZyAuY2FyZC1saXN0X19saW5rIHtcbiAgY29sb3I6ICM2M2JkMmI7XG59XG4uY2FyZC1saXN0X19oZWFkaW5nX21vdmllIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgZm9udC1zaXplOiAzOHB4O1xuICBmb250LXNpemU6IDMuOHJlbTtcbiAgY29sb3I6ICMwMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5jYXJkLWxpc3RfX2xpbms6aG92ZXIgLmNhcmQtbGlzdF9faGVhZGluZ19tb3ZpZSB7XG4gIGNvbG9yOiAjNjNiZDJiO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNhcmQtbGlzdF9faGVhZGluZ19tb3ZpZSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuLmNhcmQtbGlzdF9fZGF0ZV9tb3ZpZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNhcmQtbGlzdF9fc3VtbWFyeV9tb3ZpZSB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuY2FyZC1saXN0X19zdW1tYXJ5X21vdmllIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY2FyZC1saXN0X190aW1lX21vdmllIHtcbiAgcGFkZGluZzogMiUgMCAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMyU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2FyZC1saXN0X190aW1lX21vdmllIHtcbiAgICBwYWRkaW5nLXRvcDogNSU7XG4gICAgbGVmdDogNSU7XG4gIH1cbn1cbi5jYXJkLWxpc3RfX3RpdGxlIHtcbiAgbWFyZ2luOiAwIC0xMHB4O1xufVxuLm1vcmUge1xuICBiYWNrZ3JvdW5kOiAjMWMzYzZhO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubW9yZV9fYnRuIHtcbiAgYmFja2dyb3VuZDogIzFjM2M2YTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDI2cHggMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5tb3JlX19idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNDM0MzQzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vcmVfX2J0biB7XG4gICAgcGFkZGluZzogMTlweCAwO1xuICB9XG59XG4uc3Vic2NyaWJlIHtcbiAgYmFja2dyb3VuZDogI2ZmZDcwMDtcbiAgcGFkZGluZzogNCUgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuc3Vic2NyaWJlIHtcbiAgICBwYWRkaW5nOiAxOHB4IDAgMzRweDtcbiAgfVxufVxuLnN1YnNjcmliZV9faGVhZGluZyB7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbjogMCBhdXRvIDMzcHg7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMjE0Mjg1Nztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zdWJzY3JpYmVfX2hlYWRpbmcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzI3MjcyNztcbiAgfVxufVxuLnN1YnNjcmliZV9fZm9ybSB7XG4gIHdpZHRoOiA0MjJweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtYXJnaW46IDAgYXV0byAzM3B4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMjJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc3Vic2NyaWJlX19mb3JtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuc3Vic2NyaWJlX19mb3JtIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIDE1cHggMzJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG4uc3Vic2NyaWJlX19maWVsZCB7XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKFwiLi4vaW1nL3N1YnNjcmliZS5wbmdcIikgbm8tcmVwZWF0IDEzcHggNTAlO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDEycHggMTFweCA0MXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogIzAwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMXB4O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zdWJzY3JpYmVfX2ZpZWxkOi1tb3otcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc3Vic2NyaWJlX19maWVsZDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zdWJzY3JpYmVfX2ZpZWxkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLnN1YnNjcmliZV9fZmllbGQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLnN1YnNjcmliZV9fZmllbGQ6Zm9jdXM6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5zdWJzY3JpYmVfX2ZpZWxkOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnN1YnNjcmliZV9fZmllbGQ6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjM7XG59XG4uc3Vic2NyaWJlX19maWVsZDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjM7XG59XG4uc3Vic2NyaWJlX19idG4ge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMjJweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5zdWJzY3JpYmVfX2J0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4uY29scyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG59XG4uY29sc19fc2lkZSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2lkdGg6IDE1JTtcbiAgbWluLXdpZHRoOiAyMDVweDtcbiAgbWluLWhlaWdodDogNTZweDtcbiAgcGFkZGluZzogMjFweDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmNvbHNfX3NpZGU6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9Qanh6ZG1jZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWlCM2FXUjBhRDBpTVRBd0pTSWdhR1ZwWjJoMFBTSXhNREFsSWlCMmFXVjNRbTk0UFNJd0lEQWdNU0F4SWlCd2NtVnpaWEoyWlVGemNHVmpkRkpoZEdsdlBTSnViMjVsSWo0OGJHbHVaV0Z5UjNKaFpHbGxiblFnYVdROUlteGxjM05vWVhRdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJd0pTSWdlVEk5SWpFd01DVWlQanh6ZEc5d0lHOW1abk5sZEQwaU1DVWlJSE4wYjNBdFkyOXNiM0k5SW5KbllpZ3lOVFVzTWpVMUxESTFOU2tpSUhOMGIzQXRiM0JoWTJsMGVUMGlMak1pTHo0OGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJbkpuWWlneU5UVXNNalUxTERJMU5Ta2lJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQand2YkdsdVpXRnlSM0poWkdsbGJuUStQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NOc1pYTnphR0YwTFdkbGJtVnlZWFJsWkNraUlDOCtQQzl6ZG1jKyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyNTUsMjU1LDI1NSwuMyksIHJnYmEoMjU1LDI1NSwyNTUsMSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LC4zKSwgcmdiYSgyNTUsMjU1LDI1NSwxKSk7XG4gIGhlaWdodDogNTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbHNfX3NpZGU6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY29sc19fc2lkZTpob3ZlciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmNvbHNfX3NpZGU6aG92ZXIgLm5hdl9fbGlzdF9zaWRlIHtcbiAgei1pbmRleDogMjtcbn1cbi5jb2xzX19zaWRlIC5oMyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNmVtO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbHNfX3NpZGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMThweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmNvbHNfX3NpZGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG4gIC5jb2xzX19zaWRlIC5oMyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA1O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY29sc19fc2lkZSB7XG4gICAgcGFkZGluZzogMThweDtcbiAgfVxuICAuY29sc19fc2lkZSAuaDMge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jb2xzX19zaWRlIC5oMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmNvbHNfX3NlY3Rpb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbHNfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uY29tbWVudHMge1xuICBwYWRkaW5nOiA0OXB4IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jb21tZW50c19faGVhZGluZyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jb21tZW50c19fY29udGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jbGVhci1wbGF5bGlzdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAzOXB4O1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNsZWFyLXBsYXlsaXN0IHtcbiAgICByaWdodDogMjBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNsZWFyLXBsYXlsaXN0IHtcbiAgICByaWdodDogNXB4O1xuICB9XG59XG4uY2xlYXItcGxheWxpc3RfX2J0biB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE2LCAyMTYsIDIxNiwgMC4zMyk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMCA5cHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzMpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uY2xlYXItcGxheWxpc3RfX2J0bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmVkO1xuICBjb2xvcjogcmVkO1xufVxuLmFib3V0IHtcbiAgcGFkZGluZzogMCAxMi44JTtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLmFib3V0IHtcbiAgICBwYWRkaW5nOiAwIDMwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuYWJvdXQge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NzA1ODgyNDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5hYm91dCB7XG4gICAgcGFkZGluZzogMCAxN3B4O1xuICB9XG59XG4uYWJvdXQgcCB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi5hYm91dDphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG4uYWJvdXRfX2NoYW5uZWxzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmFib3V0X19jaGFubmVscy1pdGVtIHtcbiAgYmFja2dyb3VuZDogI2Y3ZjRmMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW46IDAgMTZweCAyNHB4IDA7XG4gIHBhZGRpbmc6IDAgMzJweDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXNpemU6IDIuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDY0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFib3V0X19jaGFubmVscy1pdGVtIHtcbiAgICBtYXJnaW46IDAgMTJweCAxOHB4IDA7XG4gICAgcGFkZGluZzogMCAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogNTVweDtcbiAgfVxufVxuLmFib3V0X19zZWN0aW9uIHtcbiAgcGFkZGluZzogNCUgMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuYWJvdXRfX3NlY3Rpb24ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDE3cHggMDtcbiAgfVxufVxuLmFib3V0X19oMyB7XG4gIG1hcmdpbjogNzBweCAwIDMwcHg7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAyLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFib3V0X19oMyB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICB9XG59XG4ubmRhc2gtbGlzdCB7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG4gIHBhZGRpbmc6IDAgMCAwIDI5cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubmRhc2gtbGlzdF9faXRlbSB7XG4gIG1hcmdpbjogMThweCAwIDA7XG4gIHBhZGRpbmc6IDAgMCAwIDE0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uZGFzaC1saXN0X19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwO1xufVxuLm5kYXNoLWxpc3RfX2l0ZW06YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC43ZW07XG4gIGxlZnQ6IDA7XG59XG4ubmRhc2gtbGlzdF9lcnJvciB7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5kYXNoLWxpc3RfZXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cbi5uZGFzaC1saXN0X19pdGVtX2Vycm9yIHtcbiAgbWFyZ2luOiAwO1xufVxuLnJ1bGVzIHtcbiAgd2lkdGg6IDY5JTtcbiAgcGFkZGluZzogNyU7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLnJ1bGVzIHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnJ1bGVzIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAxN3B4O1xuICB9XG59XG4ucnVsZXMgcCB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi5zb3J0aW5nLXBhcmFtcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiA0NHB4O1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNvcnRpbmctcGFyYW1zIHtcbiAgICByaWdodDogMjJweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNvcnRpbmctcGFyYW1zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIC1tcy10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4uc29ydGluZy1wYXJhbXNfX2l0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAzNHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuLnNvcnRpbmctcGFyYW1zX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc29ydGluZy1wYXJhbXNfX2l0ZW0ge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xuICAuc29ydGluZy1wYXJhbXNfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG4uY29udGFjdHM6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLmNvbnRhY3RzX19pbmZvIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA0NSU7XG4gIHBhZGRpbmc6IDg1cHggMzBweCA4NXB4IDEwMHB4O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbnRhY3RzX19pbmZvIHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNvbnRhY3RzX19pbmZvIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY29udGFjdHNfX2luZm8ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG4uY29udGFjdHNfX21hcCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTUlO1xufVxuLmNvbnRhY3RzX19tYXAgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY29udGFjdHNfX21hcCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cbi5jb250YWN0c19fY29tcGFueSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODkpO1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzMztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jb250YWN0c19fY29tcGFueSB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICB9XG59XG4uY29udGFjdHNfX2FkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBjb2xvcjogIzAwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jb250YWN0c19fYWRkcmVzcyB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICB9XG59XG4uY29udGFjdHNfX2xpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uY29udGFjdHNfX2xpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5jb250YWN0c19fcGFydG5lciB7XG4gIG1hcmdpbi1ib3R0b206IDE5cHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODkpO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNvbnRhY3RzX19wYXJ0bmVyIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDcwNTg4MjQ7XG4gIH1cbn1cbi5jb250YWN0c19fc2VjdG9ycyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDI7XG4gIGNvbHVtbi1jb3VudDogMjtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAyNXB4O1xuICBjb2x1bW4tZ2FwOiAyNXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jb250YWN0c19fc2VjdG9ycyB7XG4gICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDE7XG4gICAgY29sdW1uLWNvdW50OiAxO1xuICAgIC13ZWJraXQtY29sdW1uLWdhcDogMHB4O1xuICAgIGNvbHVtbi1nYXA6IDBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNvbnRhY3RzX19zZWN0b3JzIHtcbiAgICAtd2Via2l0LWNvbHVtbi1jb3VudDogMjtcbiAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAyNXB4O1xuICAgIGNvbHVtbi1nYXA6IDI1cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5jb250YWN0c19fc2VjdG9ycyB7XG4gICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDE7XG4gICAgY29sdW1uLWNvdW50OiAxO1xuICAgIC13ZWJraXQtY29sdW1uLWdhcDogMHB4O1xuICAgIGNvbHVtbi1nYXA6IDBweDtcbiAgfVxufVxuLmNvbnRhY3RzX19zZWN0b3JzLWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg5KTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jb250YWN0c19fc2VjdG9ycy1pdGVtIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDcwNTg4MjQ7XG4gIH1cbn1cbi5hZGQtdG8tY29sbGVjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAyOXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOHB4O1xuICBsaW5lLWhlaWdodDogMS40NjY2NjY2NztcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmNhcmRfbW92aWUgLmFkZC10by1jb2xsZWN0aW9uLFxuLmNhcmQtbGlzdF9faXRlbSAuYWRkLXRvLWNvbGxlY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uY2FyZF9tb3ZpZV9mYXZvcml0ZSAuYWRkLXRvLWNvbGxlY3Rpb24sXG4uY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlIC5hZGQtdG8tY29sbGVjdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYWRkLXRvLWNvbGxlY3Rpb246aG92ZXIge1xuICBjb2xvcjogcmVkO1xufVxuLmFkZC10by1jb2xsZWN0aW9uOmhvdmVyOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtM3B4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTNweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTNweCk7XG59XG4uYWRkLXRvLWNvbGxlY3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9mYXZvcml0ZS1ibGFjay5zdmdcIikgbm8tcmVwZWF0O1xuICB3aWR0aDogMjNweDtcbiAgaGVpZ2h0OiAxOXB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hZGQtdG8tY29sbGVjdGlvbiB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC0xMDAwZW07XG4gIH1cbiAgLmFkZC10by1jb2xsZWN0aW9uOmJlZm9yZSB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cbi5hZGQtdG8tY29sbGVjdGlvbl9jYXJkX21vdmllIHtcbiAgbWFyZ2luOiAyN3B4IDI1cHggMjdweCAwO1xuICBmbG9hdDogcmlnaHQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAuYWRkLXRvLWNvbGxlY3Rpb25fY2FyZF9tb3ZpZSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAyNXB4IDE1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuLm1vdmllLW1vZGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjlweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDY2NjY2Njc7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5tb3ZpZS1tb2RlOmhvdmVyIHtcbiAgY29sb3I6IHJlZDtcbn1cbi5tb3ZpZS1tb2RlOmhvdmVyOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtM3B4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTNweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTNweCk7XG59XG4ubW92aWUtbW9kZTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL21vdmllLW1vZGUuc3ZnXCIpIG5vLXJlcGVhdDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubW92aWUtbW9kZSB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC0xMDAwZW07XG4gIH1cbiAgLm1vdmllLW1vZGU6YmVmb3JlIHtcbiAgICByaWdodDogMDtcbiAgfVxufVxuLnBhZ2VfbW92aWUtbW9kZSAubW92aWUtbW9kZSB7XG4gIGNvbG9yOiAjZmZmO1xuICB6LWluZGV4OiAxMDE7XG59XG4ubW92aWUtbW9kZV9jYXJkX21vdmllIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDI3cHggMjVweCAyN3B4IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAubW92aWUtbW9kZV9jYXJkX21vdmllIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IDI1cHggMTVweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG4ubW92aWUtbW9kZV9jb250ZW50X2hlYWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMzk1cHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vdmllLW1vZGVfY29udGVudF9oZWFkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uYWRkLXRvLXNpdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjlweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDY2NjY2Njc7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5hZGQtdG8tc2l0ZTpob3ZlciB7XG4gIGNvbG9yOiByZWQ7XG59XG4uYWRkLXRvLXNpdGU6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0zcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtM3B4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtM3B4KTtcbn1cbi5hZGQtdG8tc2l0ZTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2VtYmVkLnN2Z1wiKSBuby1yZXBlYXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFkZC10by1zaXRlIHtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcbiAgfVxuICAuYWRkLXRvLXNpdGU6YmVmb3JlIHtcbiAgICByaWdodDogMDtcbiAgfVxufVxuLmFkZC10by1zaXRlX2NhcmRfbW92aWUge1xuICBtYXJnaW46IDI3cHggMCAyN3B4IDA7XG4gIGZsb2F0OiByaWdodDtcbiAgLypAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkgeyovXG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAuYWRkLXRvLXNpdGVfY2FyZF9tb3ZpZSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luOiAyNXB4IDE1cHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuLmxpa2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjNjNiZDJiO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmxpa2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmxpa2Uge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbjogMjBweCAwIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4ubGlrZV9fbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5saWtlX19saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbGlrZXMuc3ZnXCIpIG5vLXJlcGVhdDtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMjhweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmxpa2VfX2xpbms6aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNXB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNXB4KTtcbn1cbi5saWtlX2NhcmRfbW92aWUge1xuICBtYXJnaW46IDIycHggMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyMSU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubGlrZV9jYXJkX21vdmllIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG59XG4ucGxheWxpc3QtZW1wdHkge1xuICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDUycHgpO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLW1vei1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC13ZWJraXQtZmxleC13cmFwOiBub3dyYXA7XG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2g7XG4gIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wbGF5bGlzdC1lbXB0eV9faGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucGxheWxpc3QtZW1wdHlfX2hlYWRpbmcge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLnBsYXlsaXN0LWVtcHR5X190ZXh0IHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucGxheWxpc3QtZW1wdHlfX3RleHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLnBsYXlsaXN0LWVtcHR5X190ZXh0IGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ucXVhbGl0eS1tb3ZpZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiA0NXB4O1xuICBmb250LXNpemU6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucXVhbGl0eS1tb3ZpZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnF1YWxpdHktbW92aWVfX2hlYWRpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmctcmlnaHQ6IDlweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgY29sb3I6ICMwMDA7XG59XG4ucXVhbGl0eS1tb3ZpZV9fbGluayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMCA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGNvbG9yOiAjNGE0YTRhO1xuICBsaW5lLWhlaWdodDogMS45MjMwNzY5MjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLnF1YWxpdHktbW92aWVfX2xpbms6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG59XG4ucXVhbGl0eS1tb3ZpZV9fbGluazpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG59XG4ucXVhbGl0eS1tb3ZpZV9fbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLnF1YWxpdHktbW92aWVfX2xpbmtfYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgY29sb3I6ICNmZmY7XG59XG4ucXVhbGl0eS1tb3ZpZV9fbGlua19hY3RpdmU6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5kZWxldGUtZnJvbS1jb2xsZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDY2NjY2Njc7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5jYXJkX21vdmllIC5kZWxldGUtZnJvbS1jb2xsZWN0aW9uLFxuLmNhcmQtbGlzdF9faXRlbSAuZGVsZXRlLWZyb20tY29sbGVjdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY2FyZF9tb3ZpZV9mYXZvcml0ZSAuZGVsZXRlLWZyb20tY29sbGVjdGlvbixcbi5jYXJkLWxpc3RfX2l0ZW1fZmF2b3JpdGUgLmRlbGV0ZS1mcm9tLWNvbGxlY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZGVsZXRlLWZyb20tY29sbGVjdGlvbjpob3ZlciB7XG4gIGNvbG9yOiByZWQ7XG59XG4uZGVsZXRlLWZyb20tY29sbGVjdGlvbjpob3ZlcjpiZWZvcmUge1xuICBvcGFjaXR5OiAwO1xufVxuLmRlbGV0ZS1mcm9tLWNvbGxlY3Rpb246aG92ZXI6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmRlbGV0ZS1mcm9tLWNvbGxlY3Rpb246YWZ0ZXIsXG4uZGVsZXRlLWZyb20tY29sbGVjdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogI2ZmM2MwMCB1cmwoLi4vaW1nL2Zhdm9yaXRlLnN2Zykgbm8tcmVwZWF0IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTlweCAxOXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLmRlbGV0ZS1mcm9tLWNvbGxlY3Rpb246YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2Zhdm9yaXRlLWRlbC13aGl0ZS5zdmcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIycHggMjNweDtcbiAgb3BhY2l0eTogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5kZWxldGUtZnJvbS1jb2xsZWN0aW9uIHtcbiAgICB3aWR0aDogMzVweDtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcbiAgfVxuICAuZGVsZXRlLWZyb20tY29sbGVjdGlvbjpiZWZvcmUge1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG4uZGVsZXRlLWZyb20tY29sbGVjdGlvbl9jYXJkX21vdmllIHtcbiAgbWFyZ2luOiAyN3B4IDQwcHggMjdweCAwO1xuICBmbG9hdDogcmlnaHQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZGVsZXRlLWZyb20tY29sbGVjdGlvbl9jYXJkX21vdmllIHtcbiAgICBtYXJnaW46IDIwcHggNDBweCAyMHB4IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5kZWxldGUtZnJvbS1jb2xsZWN0aW9uX2NhcmRfbW92aWUge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbjogOHB4IDE0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5tb2RhbF9faW5uZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xufVxuLm1vZGFsLFxuLm1vZGFsX19iZyB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbn1cbi5tb2RhbF9faG9yaXNvbnRhbF9pbm5lciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogYXV0bztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tb2RhbF9faG9yaXNvbnRhbF9pbm5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5tb2RhbF9fdmVydGljYWxfaW5uZXIge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMzAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMzAwcHg7XG4gIHBhZGRpbmc6IDMwcHg7XG59XG4ubW9kYWxfX2JnIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgem9vbTogMTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG59XG4uc2hvdyAubW9kYWxfX2JnIHtcbiAgem9vbTogMTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbiAgb3BhY2l0eTogMC41O1xufVxuLm1vZGFsX19jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDE1cHggIzAwMDtcbiAgcGFkZGluZzogMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMC43KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uc2hvdyAubW9kYWxfX2NvbnRlbnQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufVxuLm1vZGFsX19jbG9zZV9idG4ge1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIHRleHQtaW5kZW50OiAtMTAwMGVtO1xufVxuLm1vZGFsX19jbG9zZV9idG46aG92ZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlO1xufVxuLm1vZGFsX19jbG9zZV9idG46YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9jbG9zZV91cF9ib2R5LnBuZ1wiKSBuby1yZXBlYXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG59XG4ubW9kYWxfbGlnaHRib3hfX3ByZXYsXG4ubW9kYWxfbGlnaHRib3hfX25leHQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG4ubW9kYWxfbGlnaHRib3hfX25leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbn1cbi5tb2RhbC1lbWJlZCAubW9kYWxfX2NvbnRlbnQge1xuICB3aWR0aDogNjAwcHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubW9kYWwtZW1iZWQgLm1vZGFsX19jb250ZW50IHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuLm1vZGFsLWVtYmVkIHAge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLm1vZGFsLWVtYmVkX19maWVsZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXNpemU6IDMwcHg7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnNraXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMC42O1xufVxuLnNraXBfbW92aWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMHB4O1xuICBib3R0b206IDQwcHg7XG4gIHotaW5kZXg6IDEwO1xufVxuLnByZXJvbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMC42O1xufVxuLnByZXJvbGxfbW92aWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGJvdHRvbTogNDBweDtcbiAgei1pbmRleDogMTA7XG59XG4uZXJyb3ItYm94IHtcbiAgcGFkZGluZzogNTVweCAxMDBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44OSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZXJyb3ItYm94IHtcbiAgICBwYWRkaW5nOiAyNXB4IDE3cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICB9XG59XG4uZXJyb3ItYm94IHAge1xuICBtYXJnaW46IDA7XG59XG4uYmFubmVyX19pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uZmlsbXMtbW9yZV9fdGV4dCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwYWRkaW5nOiAzNnB4IDQ1cHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODkpO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjdweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5maWxtcy1tb3JlX190ZXh0IHtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZmlsbXMtbW9yZV9fdGV4dCAuaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIH1cbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MzAvS0ZPbENucUV1OTJGcjFNbVNVNWZBQmM5LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YzMC9LRk9tQ25xRXU5MkZyMU11NW14UC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MzAvS0ZPbENucUV1OTJGcjFNbUVVOWZBQmM5LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YzMC9LRk9sQ25xRXU5MkZyMU1tV1VsZkFCYzkudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG59XG4uc29jaWFscy1jaGFubmVscyB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogMjRweCAwIDQwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5zb2NpYWxzLWNoYW5uZWxzIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4IDI0cHggNDBweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zb2NpYWxzLWNoYW5uZWxzIHtcbiAgICBwYWRkaW5nOiAyNHB4IDEycHggNDBweDtcbiAgfVxufVxuLnNvY2lhbHMtY2hhbm5lbHNfX3dyYXBwZXIge1xuICBtYXgtd2lkdGg6IDc2MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuc29jaWFscy1jaGFubmVsc19fd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG4uc29jaWFscy1jaGFubmVsc19fc3VtbWFyeSB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZjNmM2YzO1xuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBjb2xvcjogIzAwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc29jaWFscy1jaGFubmVsc19fc3VtbWFyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbi5zb2NpYWxzLWNoYW5uZWxzX19zdW1tYXJ5IHAge1xuICBtYXJnaW4tYm90dG9tOiAxLjJlbTtcbn1cbi5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG4uc29jaWFscy1jaGFubmVsc19fc3Vic2NyaWJlLWxpbmsge1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgNTAlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNvY2lhbHMtY2hhbm5lbHNfX3N1YnNjcmliZS1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gIH1cbn1cbi5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtbGlua19mYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDU4YTM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zb2NpYWxzL2ZhY2Vib29rLnN2Z1wiKTtcbn1cbi5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtbGlua192ayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjc2YTc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zb2NpYWxzL3ZrLnN2Z1wiKTtcbn1cbi5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtbGlua190dyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGEzZmE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zb2NpYWxzL3R3aXR0ZXIuc3ZnXCIpO1xufVxuLnNvY2lhbHMtY2hhbm5lbHNfX3N1YnNjcmliZS1saW5rX29rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGQwMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NvY2lhbHMvb2suc3ZnXCIpO1xufVxuLnNvY2lhbHMtY2hhbm5lbHNfX3N1YnNjcmliZS1saW5rX3l0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NvY2lhbHMveW91dHViZS5zdmdcIik7XG59XG4uZG93bmxvYWQtdmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDY2NjY2Njc7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5kb3dubG9hZC12aWRlbzpob3ZlciB7XG4gIGNvbG9yOiByZWQ7XG59XG4uZG93bmxvYWQtdmlkZW86aG92ZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC0zcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtM3B4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtM3B4KTtcbn1cbi5kb3dubG9hZC12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Rvd25sb2FkMi5zdmdcIikgbm8tcmVwZWF0O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5kb3dubG9hZC12aWRlbyB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC0xMDAwZW07XG4gIH1cbiAgLmRvd25sb2FkLXZpZGVvOmJlZm9yZSB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cbi5kb3dubG9hZC12aWRlb19jYXJkX21vdmllIHtcbiAgbWFyZ2luOiAyN3B4IDI1cHggMjdweCAwO1xuICBmbG9hdDogcmlnaHQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MTlweCkge1xuICAuZG93bmxvYWQtdmlkZW9fY2FyZF9tb3ZpZSB7XG4gICAgbWFyZ2luLXRvcDogMTNweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmRvd25sb2FkLXZpZGVvX2NhcmRfbW92aWUge1xuICAgIG1hcmdpbi10b3A6IDI3cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4MHB4KSB7XG4gIC5kb3dubG9hZC12aWRlb19jYXJkX21vdmllIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW46IDI1cHggMTVweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG4uc3B1dG5pay1pbmZvIHtcbiAgd2lkdGg6IDY5JTtcbiAgcGFkZGluZzogNyU7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLnNwdXRuaWstaW5mbyB7XG4gICAgcGFkZGluZzogMzBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5zcHV0bmlrLWluZm8ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDE3cHg7XG4gIH1cbn1cbi5zcHV0bmlrLWluZm9fX3RhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuLnNwdXRuaWstaW5mb19fdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG59XG4uc3B1dG5pay1pbmZvX190YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbiIsIlxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwJnN1YnNldD1jeXJpbGxpYycpO1xuXG4uRm9udFJvYm90bygpIHtcbiAgICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG59IiwiLy8gICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuLy8gIDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTU0hhdCAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuLy8gICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuLy9cbi8vIE1hZGUgd2l0aCBFbmVyZ3kgZHJpbmtzIGluIFByYWd1ZSwgQ3plY2ggUmVwdWJsaWMuXG4vLyBIYW5kY3JhZnRlZCBieSBQZXRyIEJyemVrLCBsZXNzaGF0LmNvbVxuLy8gV29ya3MgZ3JlYXQgd2l0aCBDU1MgSGF0IGNzc2hhdC5jb21cblxuLy8gdmVyc2lvbjogdjIuMC4xMSAoMjAxMy0xMi0wNClcblxuLy8gVEFCTEUgT0YgTUlYSU5TOlxuLy8gYWxpZ24tY29udGVudFxuLy8gYWxpZ24taXRlbXNcbi8vIGFsaWduLXNlbGZcbi8vIGFuaW1hdGlvblxuLy8gYW5pbWF0aW9uLWRlbGF5XG4vLyBhbmltYXRpb24tZGlyZWN0aW9uXG4vLyBhbmltYXRpb24tZHVyYXRpb25cbi8vIGFuaW1hdGlvbi1maWxsLW1vZGVcbi8vIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnRcbi8vIGFuaW1hdGlvbi1uYW1lXG4vLyBhbmltYXRpb24tcGxheS1zdGF0ZVxuLy8gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblxuLy8gYXBwZWFyYW5jZVxuLy8gYmFja2ZhY2UtdmlzaWJpbGl0eVxuLy8gYmFja2dyb3VuZC1jbGlwXG4vLyBiYWNrZ3JvdW5kLWltYWdlXG4vLyBiYWNrZ3JvdW5kLW9yaWdpblxuLy8gYmFja2dyb3VuZC1zaXplXG4vLyBibHVyXG4vLyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzXG4vLyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1c1xuLy8gYm9yZGVyLWltYWdlXG4vLyBib3JkZXItcmFkaXVzXG4vLyBib3JkZXItdG9wLWxlZnQtcmFkaXVzXG4vLyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1c1xuLy8gYm94LXNoYWRvd1xuLy8gYm94LXNpemluZ1xuLy8gYnJpZ2h0bmVzc1xuLy8gY2FsY1xuLy8gY29sdW1uLWNvdW50XG4vLyBjb2x1bW4tZ2FwXG4vLyBjb2x1bW4tcnVsZVxuLy8gY29sdW1uLXdpZHRoXG4vLyBjb2x1bW5zXG4vLyBjb250cmFzdFxuLy8gZGlzcGxheVxuLy8gZHJvcC1zaGFkb3dcbi8vIGZpbHRlclxuLy8gZmxleFxuLy8gZmxleC1iYXNpc1xuLy8gZmxleC1kaXJlY3Rpb25cbi8vIGZsZXgtZ3Jvd1xuLy8gZmxleC1zaHJpbmtcbi8vIGZsZXgtd3JhcFxuLy8gZm9udC1mYWNlXG4vLyBncmF5c2NhbGVcbi8vIGh1ZS1yb3RhdGVcbi8vIGludmVydFxuLy8ganVzdGlmeS1jb250ZW50XG4vLyBrZXlmcmFtZXNcbi8vIG9wYWNpdHlcbi8vIG9yZGVyXG4vLyBwZXJzcGVjdGl2ZVxuLy8gcGVyc3BlY3RpdmUtb3JpZ2luXG4vLyBwbGFjZWhvbGRlclxuLy8gcm90YXRlXG4vLyByb3RhdGUzZFxuLy8gcm90YXRlWFxuLy8gcm90YXRlWVxuLy8gcm90YXRlWlxuLy8gc2F0dXJhdGVcbi8vIHNjYWxlXG4vLyBzY2FsZTNkXG4vLyBzY2FsZVhcbi8vIHNjYWxlWVxuLy8gc2NhbGVaXG4vLyBzZWxlY3Rpb25cbi8vIHNlcGlhXG4vLyBzaXplXG4vLyBza2V3XG4vLyBza2V3WFxuLy8gc2tld1lcbi8vIHRyYW5zZm9ybVxuLy8gdHJhbnNmb3JtLW9yaWdpblxuLy8gdHJhbnNmb3JtLXN0eWxlXG4vLyB0cmFuc2l0aW9uXG4vLyB0cmFuc2l0aW9uLWRlbGF5XG4vLyB0cmFuc2l0aW9uLWR1cmF0aW9uXG4vLyB0cmFuc2l0aW9uLXByb3BlcnR5XG4vLyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblxuLy8gdHJhbnNsYXRlXG4vLyB0cmFuc2xhdGUzZFxuLy8gdHJhbnNsYXRlWFxuLy8gdHJhbnNsYXRlWVxuLy8gdHJhbnNsYXRlWlxuLy8gdXNlci1zZWxlY3RcblxuLy8gQ29uZmlnIHN1cHBvcnRlZCBicm93c2VycyBmb3IgeW91ciBwcm9qZWN0XG5Ad2Via2l0OiB0cnVlO1xuQG1vejogZmFsc2U7XG5Ab3BlcmE6IGZhbHNlO1xuQG1zOiB0cnVlO1xuQHczYzogdHJ1ZTtcblxuLmFsaWduLWNvbnRlbnQoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwic3RyZXRjaFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX21zOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcInN0cmV0Y2hcIixcImZsZXgtc3RhcnRcIj09dmFsdWU/dmFsdWU9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dmFsdWU/dmFsdWU9XCJlbmRcIjpcInNwYWNlLWJldHdlZW5cIj09dmFsdWU/dmFsdWU9XCJqdXN0aWZ5XCI6XCJzcGFjZS1hcm91bmRcIj09dmFsdWUmJih2YWx1ZT1cImRpc3RyaWJ1dGVcIiksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7IC1tcy1mbGV4LWxpbmUtcGFjazogQHByb2Nlc3NfbXM7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgYWxpZ24tY29udGVudDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5hbGlnbi1pdGVtcyguLi4pIHtcblxuICAgIEBvbGRlcndlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJzdHJldGNoXCJ9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcInN0cmV0Y2hcIixcImZsZXgtc3RhcnRcIj09dmFsdWU/dmFsdWU9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dmFsdWUmJih2YWx1ZT1cImVuZFwiKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcbiAgICBAcHJvY2Vzc19tczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJzdHJldGNoXCIsXCJmbGV4LXN0YXJ0XCI9PXZhbHVlP3ZhbHVlPVwic3RhcnRcIjpcImZsZXgtZW5kXCI9PXZhbHVlJiYodmFsdWU9XCJlbmRcIiksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWJveC1hbGlnbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbW96KSkgeyAtbW96LWJveC1hbGlnbjogQHByb2Nlc3NfbW96OyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX21veikpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tcykpIHsgLXdlYmtpdC1hbGlnbi1pdGVtczogQHByb2Nlc3NfbXM7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZsZXgtYWxpZ246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGFsaWduLWl0ZW1zOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIHRydWUsIEBvbGRlcndlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmFsaWduLXNlbGYoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiYXV0b1wifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX21zOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcImF1dG9cIixcImZsZXgtc3RhcnRcIj09dmFsdWU/dmFsdWU9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dmFsdWUmJih2YWx1ZT1cImVuZFwiKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYWxpZ24tc2VsZjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tcykpIHsgLW1zLWFsaWduLXNlbGY6IEBwcm9jZXNzX21zOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGFsaWduLXNlbGY6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYW5pbWF0aW9uKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwibm9uZVwiLC9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYW5pbWF0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWFuaW1hdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tYW5pbWF0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBhbmltYXRpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5hbmltYXRpb24tZGVsYXkoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjBcIjt2YXIgdmFsdWVSZWdleD0vKD86XFxkKSg/Om1zfHMpL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gdmFsdWVSZWdleC50ZXN0KHZhbHVlKXx8XCIwXCI9PT12YWx1ZXx8KHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grPXBhcnNlRmxvYXQobWF0Y2gsMTApPjEwP1wibXNcIjpcInNcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWFuaW1hdGlvbi1kZWxheTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tYW5pbWF0aW9uLWRlbGF5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBhbmltYXRpb24tZGVsYXk6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5hbmltYXRpb24tZGlyZWN0aW9uKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwibm9ybWFsXCJ9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otYW5pbWF0aW9uLWRpcmVjdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tYW5pbWF0aW9uLWRpcmVjdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgYW5pbWF0aW9uLWRpcmVjdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmFuaW1hdGlvbi1kdXJhdGlvbiguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciB2YWx1ZVJlZ2V4PS9tc3xzL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gdmFsdWVSZWdleC50ZXN0KHZhbHVlKXx8XCIwXCI9PT12YWx1ZXx8KHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grPXBhcnNlRmxvYXQobWF0Y2gsMTApPjEwP1wibXNcIjpcInNcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tYW5pbWF0aW9uLWR1cmF0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBhbmltYXRpb24tZHVyYXRpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5hbmltYXRpb24tZmlsbC1tb2RlKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwibm9uZVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWFuaW1hdGlvbi1maWxsLW1vZGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLWFuaW1hdGlvbi1maWxsLW1vZGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGFuaW1hdGlvbi1maWxsLW1vZGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwiMFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5hbmltYXRpb24tbmFtZSguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlfHxcIm5vbmVcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otYW5pbWF0aW9uLW5hbWU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLWFuaW1hdGlvbi1uYW1lOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBhbmltYXRpb24tbmFtZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmFuaW1hdGlvbi1wbGF5LXN0YXRlKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwicnVubmluZ1wifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1hbmltYXRpb24tcGxheS1zdGF0ZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tYW5pbWF0aW9uLXBsYXktc3RhdGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlfHxcImVhc2VcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYXBwZWFyYW5jZSguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwibm9uZVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWFwcGVhcmFuY2U6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGFwcGVhcmFuY2U6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5iYWNrZmFjZS12aXNpYmlsaXR5KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlfHxcInZpc2libGVcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby1iYWNrZmFjZS12aXNpYmlsaXR5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmJhY2tncm91bmQtY2xpcCguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwiYm9yZGVyLWJveFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otYmFja2dyb3VuZC1jbGlwOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBiYWNrZ3JvdW5kLWNsaXA6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5iYWNrZ3JvdW5kLWltYWdlKC4uLikge1xuXG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzX21zOiB+YChmdW5jdGlvbih2YWx1ZSl7ZnVuY3Rpb24gYmFzZTY0X2VuY29kZShkYXRhKXt2YXIgbzEsbzIsbzMsaDEsaDIsaDMsaDQsYml0cyxiNjQ9XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwiLGk9MCxhYz0wLGVuYz1cIlwiLHRtcF9hcnI9W107aWYoIWRhdGEpcmV0dXJuIGRhdGE7ZG8gbzE9ZGF0YS5jaGFyQ29kZUF0KGkrKyksbzI9ZGF0YS5jaGFyQ29kZUF0KGkrKyksbzM9ZGF0YS5jaGFyQ29kZUF0KGkrKyksYml0cz1vMTw8MTZ8bzI8PDh8bzMsaDE9NjMmYml0cz4+MTgsaDI9NjMmYml0cz4+MTIsaDM9NjMmYml0cz4+NixoND02MyZiaXRzLHRtcF9hcnJbYWMrK109YjY0LmNoYXJBdChoMSkrYjY0LmNoYXJBdChoMikrYjY0LmNoYXJBdChoMykrYjY0LmNoYXJBdChoNCk7d2hpbGUoaTxkYXRhLmxlbmd0aCk7ZW5jPXRtcF9hcnIuam9pbihcIlwiKTt2YXIgcj1kYXRhLmxlbmd0aCUzO3JldHVybihyP2VuYy5zbGljZSgwLHItMyk6ZW5jKStcIj09PVwiLnNsaWNlKHJ8fDMpfWlmKHZhbHVlPXZhbHVlfHw4MTIxOTkxLDgxMjE5OTE9PXZhbHVlKXJldHVybiB2YWx1ZTt2YXIgZ3JhZGllbnRzPS9saW5lYXJ8cmFkaWFsL2cudGVzdCh2YWx1ZSkmJnZhbHVlLnNwbGl0KC8sKD89XFxzKig/OmxpbmVhcnxyYWRpYWx8dXJsKSkvZyksc3ZnX2dyYWRpZW50cz1bXSx2YWx1ZXM9e1widG8gYm90dG9tXCI6J3gxPVwiMCVcIiB5MT1cIjAlXCIgeDI9XCIwJVwiIHkyPVwiMTAwJVwiJyxcInRvIGxlZnRcIjoneDE9XCIxMDAlXCIgeTE9XCIwJVwiIHgyPVwiMCVcIiB5Mj1cIjAlXCInLFwidG8gdG9wXCI6J3gxPVwiMCVcIiB5MT1cIjEwMCVcIiB4Mj1cIjAlXCIgeTI9XCIwJVwiJyxcInRvIHJpZ2h0XCI6J3gxPVwiMCVcIiB5MT1cIjAlXCIgeDI9XCIxMDAlXCIgeTI9XCIwJVwiJyxnZXRcInRvcFwiKCl7cmV0dXJuIHRoaXNbXCJ0byBib3R0b21cIl19LGdldFwiMTgwZGVnXCIoKXtyZXR1cm4gdGhpc1tcInRvIGJvdHRvbVwiXX0sZ2V0XCJyaWdodFwiKCl7cmV0dXJuIHRoaXNbXCJ0byBsZWZ0XCJdfSxnZXRcIjI3MGRlZ1wiKCl7cmV0dXJuIHRoaXNbXCJ0byBsZWZ0XCJdfSxnZXRcImJvdHRvbVwiKCl7cmV0dXJuIHRoaXNbXCJ0byB0b3BcIl19LGdldFwiMGRlZ1wiKCl7cmV0dXJuIHRoaXNbXCJ0byB0b3BcIl19LGdldFwibGVmdFwiKCl7cmV0dXJuIHRoaXNbXCJ0byByaWdodFwiXX0sZ2V0XCI5MGRlZ1wiKCl7cmV0dXJuIHRoaXNbXCJ0byByaWdodFwiXX0sXCItNDVkZWdcIjoneDE9XCIwJVwiIHkxPVwiMCVcIiB4Mj1cIjEwMCVcIiB5Mj1cIjEwMCVcIicsXCI0NWRlZ1wiOid4MT1cIjAlXCIgeTE9XCIxMDAlXCIgeDI9XCIxMDAlXCIgeTI9XCIwJVwiJyxcImVsbGlwc2UgYXQgY2VudGVyXCI6J2N4PVwiNTAlXCIgY3k9XCI1MCVcIiByPVwiNzUlXCInfSxzdmc9e3VyaV9kYXRhOlwidXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsXCIseG1sOic8P3htbCB2ZXJzaW9uPVwiMS4wXCIgPz4nLHN2Z19zdGFydDonPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHZpZXdCb3g9XCIwIDAgMSAxXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj4nLGxpbmVhcl9ncmFkaWVudF9zdGFydDonPGxpbmVhckdyYWRpZW50IGlkPVwibGVzc2hhdC1nZW5lcmF0ZWRcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIicscmFkaWFsX2dyYWRpZW50X3N0YXJ0Oic8cmFkaWFsR3JhZGllbnQgaWQ9XCJsZXNzaGF0LWdlbmVyYXRlZFwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiJyxsaW5lYXJfZ3JhZGllbnRfZW5kOlwiPC9saW5lYXJHcmFkaWVudD5cIixyYWRpYWxfZ3JhZGllbnRfZW5kOlwiPC9yYWRpYWxHcmFkaWVudD5cIixyZWN0X2xpbmVhcjonPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIiBmaWxsPVwidXJsKCNsZXNzaGF0LWdlbmVyYXRlZClcIiAvPicscmVjdF9yYWRpYWw6JzxyZWN0IHg9XCItNTBcIiB5PVwiLTUwXCIgd2lkdGg9XCIxMDFcIiBoZWlnaHQ9XCIxMDFcIiBmaWxsPVwidXJsKCNsZXNzaGF0LWdlbmVyYXRlZClcIiAvPicsc3ZnX2VuZDpcIjwvc3ZnPlwifTtpZihncmFkaWVudHMubGVuZ3RoKXtncmFkaWVudHMuZm9yRWFjaChmdW5jdGlvbihncmFkaWVudCl7dmFyIG9iaj17fTtpZihPYmplY3Qua2V5cyh2YWx1ZXMpLnNvbWUoZnVuY3Rpb24oaW5uZXJfdmFsKXtyZXR1cm4gZ3JhZGllbnQuaW5kZXhPZihpbm5lcl92YWwpPj0wPyhvYmouc3ZnX2RpcmVjdGlvbj12YWx1ZXNbaW5uZXJfdmFsXSwhMCk6KG9iai5zdmdfZGlyZWN0aW9uPSExLHZvaWQgMCl9KSwvbGluZWFyLy50ZXN0KGdyYWRpZW50KSlvYmouc3ZnX3R5cGU9XCJsaW5lYXJcIjtlbHNlIGlmKC9yYWRpYWwvLnRlc3QoZ3JhZGllbnQpKW9iai5zdmdfdHlwZT1cInJhZGlhbFwiO2Vsc2UgaWYoIS9saW5lYXIvLnRlc3QoZ3JhZGllbnQpJiYhL3JhZGlhbC8udGVzdChncmFkaWVudCkpcmV0dXJuIG9iai51cmw9Z3JhZGllbnQudHJpbSgpLG9iai5zdmdfdHlwZT1cInVybFwiLG9iai5zdmdfZGlyZWN0aW9uPSEwLHN2Z19ncmFkaWVudHMucHVzaChvYmopLCExO3ZhciBjb2xvcnNfY291bnQ9Z3JhZGllbnQubWF0Y2goL3JnYnwjW2EtekEtWjAtOV18aHNsL2cpLmxlbmd0aDtpZihvYmouc3ZnX3N0b3BzPVtdLGdyYWRpZW50Lm1hdGNoKC8jW2EtekEtWjAtOV0vZykmJmdyYWRpZW50Lm1hdGNoKC8jW2EtekEtWjAtOV0vZykubGVuZ3RoPT1jb2xvcnNfY291bnQpaWYoZ3JhZGllbnQubWF0Y2goLyNbYS16QS1aMC05XStcXHMrKFxcZCslKS9nKSYmZ3JhZGllbnQubWF0Y2goLyNbYS16QS1aMC05XStcXHMrKFxcZCslKS9nKS5sZW5ndGg9PWNvbG9yc19jb3VudClncmFkaWVudC5tYXRjaCgvI1thLXpBLVowLTldK1xccysoXFxkKyUpL2cpLmZvckVhY2goZnVuY3Rpb24oaW5uZXJfdmFsKXtpbm5lcl92YWw9aW5uZXJfdmFsLnNwbGl0KFwiIFwiKSxvYmouc3ZnX3N0b3BzLnB1c2goJzxzdG9wIG9mZnNldD1cIicraW5uZXJfdmFsWzFdKydcIiBzdG9wLWNvbG9yPVwiJytpbm5lcl92YWxbMF0rJ1wiIHN0b3Atb3BhY2l0eT1cIjFcIi8+Jyl9KTtlbHNle3ZhciBzaGFyZXM9TWF0aC5mbG9vcigxMDAvKGdyYWRpZW50Lm1hdGNoKC8jW2EtekEtWjAtOV0vZykubGVuZ3RoLTEpKTtncmFkaWVudC5tYXRjaCgvI1thLXpBLVowLTldKy9nKS5mb3JFYWNoKGZ1bmN0aW9uKGlubmVyX3ZhbCxpbmRleCl7b2JqLnN2Z19zdG9wcy5wdXNoKCc8c3RvcCBvZmZzZXQ9XCInK3NoYXJlcyppbmRleCsnJVwiIHN0b3AtY29sb3I9XCInK2lubmVyX3ZhbCsnXCIgc3RvcC1vcGFjaXR5PVwiMVwiLz4nKX0pfWlmKGdyYWRpZW50Lm1hdGNoKC9yZ2JhP1xcKFxcZCssXFxzKlxcZCssXFxzKlxcZCsoPzosXFxzKigwfDF8XFwuXFxkK3wwXFwuXFxkKykpP1xcKS9nKSYmZ3JhZGllbnQubWF0Y2goLyg/OnJnYnxyZ2JhKT9cXChcXGQrLFxccypcXGQrLFxccypcXGQrKD86LFxccyooMHwxfFxcLlxcZCt8MFxcLlxcZCspKT9cXCkvZykubGVuZ3RoPT1jb2xvcnNfY291bnQpaWYoZ3JhZGllbnQubWF0Y2goL3JnYmE/XFwoXFxkKyxcXHMqXFxkKyxcXHMqXFxkKyg/OixcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKSk/XFwpXFxzK1xcZCslKy9nKSYmZ3JhZGllbnQubWF0Y2goL3JnYmE/XFwoXFxkKyxcXHMqXFxkKyxcXHMqXFxkKyg/OixcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKSk/XFwpXFxzK1xcZCslKy9nKS5sZW5ndGg9PWNvbG9yc19jb3VudClncmFkaWVudC5yZXBsYWNlKC9yZ2JhP1xcKChcXGQrLFxccypcXGQrLFxccypcXGQrKSg/OixcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKSk/XFwpXFxzKyhcXGQrJSkrL2csZnVuY3Rpb24obWF0Y2gsc3ViLHN1Yl8yLHN1Yl8zKXtvYmouc3ZnX3N0b3BzLnB1c2goJzxzdG9wIG9mZnNldD1cIicrc3ViXzMrJ1wiIHN0b3AtY29sb3I9XCJyZ2IoJytzdWIrJylcIiBzdG9wLW9wYWNpdHk9XCInKyhzdWJfMnx8MSkrJ1wiLz4nKX0pO2Vsc2V7dmFyIHNoYXJlcz1NYXRoLmZsb29yKDEwMC8oZ3JhZGllbnQubWF0Y2goLyhyZ2J8cmdiYSlcXCgvZykubGVuZ3RoLTEpKTtncmFkaWVudC5tYXRjaCgvcmdiYT9cXCgoXFxkKyxcXHMqXFxkKyxcXHMqXFxkKykoPzosXFxzKigwfDF8XFwuXFxkK3wwXFwuXFxkKykpP1xcKS9nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsaW5kZXgpe2VsZW1lbnQucmVwbGFjZSgvcmdiYT9cXCgoXFxkKyxcXHMqXFxkKyxcXHMqXFxkKykoPzosXFxzKigwfDF8XFwuXFxkK3wwXFwuXFxkKykpP1xcKS9nLGZ1bmN0aW9uKG1hdGNoLHN1YixzdWJfMil7b2JqLnN2Z19zdG9wcy5wdXNoKCc8c3RvcCBvZmZzZXQ9XCInK3NoYXJlcyppbmRleCsnJVwiIHN0b3AtY29sb3I9XCJyZ2IoJytzdWIrJylcIiBzdG9wLW9wYWNpdHk9XCInKyhzdWJfMnx8MSkrJ1wiLz4nKX0pfSl9aWYoZ3JhZGllbnQubWF0Y2goL2hzbGE/XFwoKFxcZCssXFxzKlxcZCslLFxccypcXGQrJSksXFxzKigwfDF8XFwuXFxkK3wwXFwuXFxkKylcXCkvZykmJmdyYWRpZW50Lm1hdGNoKC9oc2xhP1xcKChcXGQrLFxccypcXGQrJSxcXHMqXFxkKyUpLFxccyooMHwxfFxcLlxcZCt8MFxcLlxcZCspXFwpL2cpLmxlbmd0aD09Y29sb3JzX2NvdW50KWlmKGdyYWRpZW50Lm1hdGNoKC9oc2xhP1xcKChcXGQrLFxccypcXGQrJSxcXHMqXFxkKyUpLFxccyooMHwxfFxcLlxcZCt8MFxcLlxcZCspXFwpXFxzKihcXGQrJSkrL2cpJiZncmFkaWVudC5tYXRjaCgvaHNsYT9cXCgoXFxkKyxcXHMqXFxkKyUsXFxzKlxcZCslKSxcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKVxcKVxccyooXFxkKyUpKy9nKS5sZW5ndGg9PWNvbG9yc19jb3VudClncmFkaWVudC5yZXBsYWNlKC9oc2xhP1xcKChcXGQrLFxccypcXGQrJSxcXHMqXFxkKyUpLFxccyooMHwxfFxcLlxcZCt8MFxcLlxcZCspXFwpXFxzKihcXGQrJSkrL2csZnVuY3Rpb24obWF0Y2gsc3ViLHN1Yl8yLHN1Yl8zKXtvYmouc3ZnX3N0b3BzLnB1c2goJzxzdG9wIG9mZnNldD1cIicrc3ViXzMrJ1wiIHN0b3AtY29sb3I9XCJoc2woJytzdWIrJylcIiBzdG9wLW9wYWNpdHk9XCInKyhzdWJfMnx8MSkrJ1wiLz4nKX0pO2Vsc2V7dmFyIHNoYXJlcz1NYXRoLmZsb29yKDEwMC8oZ3JhZGllbnQubWF0Y2goLyhoc2x8aHNsYSlcXCgvZykubGVuZ3RoLTEpKTtncmFkaWVudC5tYXRjaCgvaHNsYT9cXCgoXFxkKyxcXHMqXFxkKyUsXFxzKlxcZCslKSxcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKVxcKS9nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsaW5kZXgpe2VsZW1lbnQucmVwbGFjZSgvaHNsYT9cXCgoXFxkKyxcXHMqXFxkKyUsXFxzKlxcZCslKSxcXHMqKDB8MXxcXC5cXGQrfDBcXC5cXGQrKVxcKS9nLGZ1bmN0aW9uKG1hdGNoLHN1YixzdWJfMil7b2JqLnN2Z19zdG9wcy5wdXNoKCc8c3RvcCBvZmZzZXQ9XCInK3NoYXJlcyppbmRleCsnJVwiIHN0b3AtY29sb3I9XCJoc2woJytzdWIrJylcIiBzdG9wLW9wYWNpdHk9XCInKyhzdWJfMnx8MSkrJ1wiLz4nKX0pfSl9c3ZnX2dyYWRpZW50cy5wdXNoKG9iail9KTt2YXIgc3ludGF4PVtdLHBhc3NlZD1zdmdfZ3JhZGllbnRzLmV2ZXJ5KGZ1bmN0aW9uKGVsZW1lbnQpe2Zvcih2YXIgaSBpbiBlbGVtZW50KWlmKDA9PWVsZW1lbnRbaV18fDA9PWVsZW1lbnRbaV0ubGVuZ3RoKXJldHVybiExO3JldHVybiEwfSk7aWYoIXBhc3NlZClyZXR1cm4gODEyMTk5MTtzdmdfZ3JhZGllbnRzLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCxpbmRleCl7KFwibGluZWFyXCI9PWVsZW1lbnQuc3ZnX3R5cGV8fFwicmFkaWFsXCI9PWVsZW1lbnQuc3ZnX3R5cGUpJiYoc3ludGF4W2luZGV4XT1zdmcueG1sK3N2Zy5zdmdfc3RhcnQpLFwibGluZWFyXCI9PWVsZW1lbnQuc3ZnX3R5cGU/KHN5bnRheFtpbmRleF0rPXN2Zy5saW5lYXJfZ3JhZGllbnRfc3RhcnQrXCIgXCIrZWxlbWVudC5zdmdfZGlyZWN0aW9uK1wiPlwiLGVsZW1lbnQuc3ZnX3N0b3BzLmZvckVhY2goZnVuY3Rpb24odmFsdWUpe3N5bnRheFtpbmRleF0rPXZhbHVlfSksc3ludGF4W2luZGV4XSs9c3ZnLmxpbmVhcl9ncmFkaWVudF9lbmQsc3ludGF4W2luZGV4XSs9c3ZnLnJlY3RfbGluZWFyLHN5bnRheFtpbmRleF0rPXN2Zy5zdmdfZW5kKTpcInJhZGlhbFwiPT1lbGVtZW50LnN2Z190eXBlPyhzeW50YXhbaW5kZXhdKz1zdmcucmFkaWFsX2dyYWRpZW50X3N0YXJ0K1wiIFwiK2VsZW1lbnQuc3ZnX2RpcmVjdGlvbitcIj5cIixlbGVtZW50LnN2Z19zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKXtzeW50YXhbaW5kZXhdKz12YWx1ZX0pLHN5bnRheFtpbmRleF0rPXN2Zy5yYWRpYWxfZ3JhZGllbnRfZW5kLHN5bnRheFtpbmRleF0rPXN2Zy5yZWN0X3JhZGlhbCxzeW50YXhbaW5kZXhdKz1zdmcuc3ZnX2VuZCk6XCJ1cmxcIj09ZWxlbWVudC5zdmdfdHlwZSYmKHN5bnRheFtpbmRleF09ZWxlbWVudC51cmwpfSksc3ludGF4LmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCxpbmRleCl7LzxcXD94bWwgdmVyc2lvbj1cIjEuMFwiIFxcPz4vZy50ZXN0KGVsZW1lbnQpJiYoc3ludGF4W2luZGV4XT1zdmcudXJpX2RhdGErYmFzZTY0X2VuY29kZShlbGVtZW50KStcIilcIil9KSx2YWx1ZT1zeW50YXguam9pbihcIixcIil9cmV0dXJuIHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX3dlYmtpdDogfmAoZnVuY3Rpb24odmFsdWUpe2lmKHZhbHVlPXZhbHVlfHw4MTIxOTkxLDgxMjE5OTE9PXZhbHVlKXJldHVybiB2YWx1ZTt2YXIgdmFsdWVzPXtcInRvIGJvdHRvbVwiOlwidG9wXCIsXCJ0byBsZWZ0XCI6XCJyaWdodFwiLFwidG8gdG9wXCI6XCJib3R0b21cIixcInRvIHJpZ2h0XCI6XCJsZWZ0XCIsXCJlbGxpcHNlIGF0IGNlbnRlclwiOlwiY2VudGVyLCBlbGxpcHNlIGNvdmVyXCIsXCJjaXJjbGUgY2xvc2VzdC1zaWRlXCI6XCJjZW50ZXIgY2VudGVyLCBjaXJjbGUgY29udGFpblwiLFwiY2lyY2xlIGZhcnRoZXN0LWNvcm5lclwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvdmVyXCIsXCJjaXJjbGUgZmFydGhlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvdmVyXCIsXCJlbGxpcHNlIGNsb3Nlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb250YWluXCIsXCJlbGxpcHNlIGZhcnRoZXN0LWNvcm5lclwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb3ZlclwiLFwiZWxsaXBzZSBmYXJ0aGVzdC1zaWRlXCI6XCJjZW50ZXIgY2VudGVyLCBlbGxpcHNlIGNvdmVyXCJ9LHJhZGlhbF9yZWdleHA9LyhyYWRpYWwtZ3JhZGllbnRcXCgpKFthLXotIF0rKWF0XFxzKyhcXHcrKVxccyooXFx3KikvZyx2YWx1ZXNfa2V5cz1PYmplY3Qua2V5cyh2YWx1ZXMpO3JldHVybiB2YWx1ZXNfa2V5cy5zb21lKGZ1bmN0aW9uKGVsKXtyZXR1cm4gdmFsdWUuaW5kZXhPZihlbCk+PTA/KHZhbHVlPXZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChlbCtcIig/IVsgYS16MC05XSlcIixcImdcIiksdmFsdWVzW2VsXSksITApOihyYWRpYWxfcmVnZXhwLnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShyYWRpYWxfcmVnZXhwLGZ1bmN0aW9uKG1hdGNoLHN1YixzdWIyLHN1YjMsc3ViNCl7cmV0dXJuIHN1Yi50cmltKCkrc3ViMy50cmltKCkrXCIgXCIrc3ViNC50cmltKCkrXCIsXCIrc3ViMi5yZXBsYWNlKC9jbG9zZXN0LXNpZGUvZyxcImNvbnRhaW5cIikucmVwbGFjZSgvZmFydGhlc3QtY29ybmVyL2csXCJjb3ZlclwiKS50cmltKCl9KSksdm9pZCAwKX0pLHZhbHVlPXZhbHVlLnJlcGxhY2UoLyhcXGQrKVxccypkZWcvZyxmdW5jdGlvbihtYXRjaCxzdWIpe3JldHVybiA5MC1zdWIrXCJkZWdcIn0pLnJlcGxhY2UoLyhsaW5lYXJ8cmFkaWFsKS1ncmFkaWVudC9nLFwiLXdlYmtpdC0kMS1ncmFkaWVudFwiKX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcbiAgICBAcHJvY2Vzc19tb3o6IH5gKGZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZT12YWx1ZXx8ODEyMTk5MSw4MTIxOTkxPT12YWx1ZSlyZXR1cm4gdmFsdWU7dmFyIHZhbHVlcz17XCJ0byBib3R0b21cIjpcInRvcFwiLFwidG8gbGVmdFwiOlwicmlnaHRcIixcInRvIHRvcFwiOlwiYm90dG9tXCIsXCJ0byByaWdodFwiOlwibGVmdFwiLFwiZWxsaXBzZSBhdCBjZW50ZXJcIjpcImNlbnRlciwgZWxsaXBzZSBjb3ZlclwiLFwiY2lyY2xlIGNsb3Nlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvbnRhaW5cIixcImNpcmNsZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiY2lyY2xlIGZhcnRoZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiZWxsaXBzZSBjbG9zZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY29udGFpblwiLFwiZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY292ZXJcIixcImVsbGlwc2UgZmFydGhlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb3ZlclwifSxyYWRpYWxfcmVnZXhwPS8ocmFkaWFsLWdyYWRpZW50XFwoKShbYS16LSBdKylhdFxccysoXFx3KylcXHMqKFxcdyopL2csdmFsdWVzX2tleXM9T2JqZWN0LmtleXModmFsdWVzKTtyZXR1cm4gdmFsdWVzX2tleXMuc29tZShmdW5jdGlvbihlbCl7cmV0dXJuIHZhbHVlLmluZGV4T2YoZWwpPj0wPyh2YWx1ZT12YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoZWwrXCIoPyFbIGEtejAtOV0pXCIsXCJnXCIpLHZhbHVlc1tlbF0pLCEwKToocmFkaWFsX3JlZ2V4cC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UocmFkaWFsX3JlZ2V4cCxmdW5jdGlvbihtYXRjaCxzdWIsc3ViMixzdWIzLHN1YjQpe3JldHVybiBzdWIudHJpbSgpK3N1YjMudHJpbSgpK1wiIFwiK3N1YjQudHJpbSgpK1wiLFwiK3N1YjIucmVwbGFjZSgvY2xvc2VzdC1zaWRlL2csXCJjb250YWluXCIpLnJlcGxhY2UoL2ZhcnRoZXN0LWNvcm5lci9nLFwiY292ZXJcIikudHJpbSgpfSkpLHZvaWQgMCl9KSx2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oXFxkKylcXHMqZGVnL2csZnVuY3Rpb24obWF0Y2gsc3ViKXtyZXR1cm4gOTAtc3ViK1wiZGVnXCJ9KS5yZXBsYWNlKC8obGluZWFyfHJhZGlhbCktZ3JhZGllbnQvZyxcIi1tb3otJDEtZ3JhZGllbnRcIil9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3Nfb3BlcmE6IH5gKGZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZT12YWx1ZXx8ODEyMTk5MSw4MTIxOTkxPT12YWx1ZSlyZXR1cm4gdmFsdWU7dmFyIHZhbHVlcz17XCJ0byBib3R0b21cIjpcInRvcFwiLFwidG8gbGVmdFwiOlwicmlnaHRcIixcInRvIHRvcFwiOlwiYm90dG9tXCIsXCJ0byByaWdodFwiOlwibGVmdFwiLFwiZWxsaXBzZSBhdCBjZW50ZXJcIjpcImNlbnRlciwgZWxsaXBzZSBjb3ZlclwiLFwiY2lyY2xlIGNsb3Nlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgY2lyY2xlIGNvbnRhaW5cIixcImNpcmNsZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiY2lyY2xlIGZhcnRoZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGNpcmNsZSBjb3ZlclwiLFwiZWxsaXBzZSBjbG9zZXN0LXNpZGVcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY29udGFpblwiLFwiZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXJcIjpcImNlbnRlciBjZW50ZXIsIGVsbGlwc2UgY292ZXJcIixcImVsbGlwc2UgZmFydGhlc3Qtc2lkZVwiOlwiY2VudGVyIGNlbnRlciwgZWxsaXBzZSBjb3ZlclwifSxyYWRpYWxfcmVnZXhwPS8ocmFkaWFsLWdyYWRpZW50XFwoKShbYS16LSBdKylhdFxccysoXFx3KylcXHMqKFxcdyopL2csdmFsdWVzX2tleXM9T2JqZWN0LmtleXModmFsdWVzKTtyZXR1cm4gdmFsdWVzX2tleXMuc29tZShmdW5jdGlvbihlbCl7cmV0dXJuIHZhbHVlLmluZGV4T2YoZWwpPj0wPyh2YWx1ZT12YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoZWwrXCIoPyFbIGEtejAtOV0pXCIsXCJnXCIpLHZhbHVlc1tlbF0pLCEwKToocmFkaWFsX3JlZ2V4cC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UocmFkaWFsX3JlZ2V4cCxmdW5jdGlvbihtYXRjaCxzdWIsc3ViMixzdWIzLHN1YjQpe3JldHVybiBzdWIudHJpbSgpK3N1YjMudHJpbSgpK1wiIFwiK3N1YjQudHJpbSgpK1wiLFwiK3N1YjIucmVwbGFjZSgvY2xvc2VzdC1zaWRlL2csXCJjb250YWluXCIpLnJlcGxhY2UoL2ZhcnRoZXN0LWNvcm5lci9nLFwiY292ZXJcIikudHJpbSgpfSkpLHZvaWQgMCl9KSx2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oXFxkKylcXHMqZGVnL2csZnVuY3Rpb24obWF0Y2gsc3ViKXtyZXR1cm4gOTAtc3ViK1wiZGVnXCJ9KS5yZXBsYWNlKC8obGluZWFyfHJhZGlhbCktZ3JhZGllbnQvZyxcIi1vLSQxLWdyYWRpZW50XCIpfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7aWYodmFsdWU9dmFsdWV8fDgxMjE5OTEsODEyMTk5MT09dmFsdWUpcmV0dXJuIHZhbHVlO3ZhciB2YWx1ZXM9e3RvcDpcInRvIGJvdHRvbVwiLHJpZ2h0OlwidG8gbGVmdFwiLGJvdHRvbTpcInRvIHRvcFwiLGxlZnQ6XCJ0byByaWdodFwifSx2YWx1ZXNfa2V5cz1PYmplY3Qua2V5cyh2YWx1ZXMpO3JldHVybiB2YWx1ZXNfa2V5cy5zb21lKGZ1bmN0aW9uKGVsKXtyZXR1cm4gdmFsdWUuaW5kZXhPZihlbCk+PTAmJiFuZXcgUmVnRXhwKFwidG9cXFxccytcIitlbCxcImdcIikudGVzdCh2YWx1ZSk/KHZhbHVlPXZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChlbCksdmFsdWVzW2VsXSksITApOnZvaWQgMH0pLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tcykpIHsgYmFja2dyb3VuZC1pbWFnZTogQHByb2Nlc3NfbXM7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfd2Via2l0KSkgeyBiYWNrZ3JvdW5kLWltYWdlOiBAcHJvY2Vzc193ZWJraXQ7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfd2Via2l0KSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tb3opKSB7IGJhY2tncm91bmQtaW1hZ2U6IEBwcm9jZXNzX21vejsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tb3opKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29wZXJhKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb3BlcmEpKSB7IGJhY2tncm91bmQtaW1hZ2U6IEBwcm9jZXNzX29wZXJhOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29wZXJhKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb3BlcmEpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGJhY2tncm91bmQtaW1hZ2U6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5iYWNrZ3JvdW5kLW9yaWdpbiguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV8fFwicGFkZGluZy1ib3hcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW46IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otYmFja2dyb3VuZC1vcmlnaW46IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGJhY2tncm91bmQtb3JpZ2luOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYmFja2dyb3VuZC1zaXplKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcImF1dG8gYXV0b1wiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJhY2tncm91bmQtc2l6ZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgYmFja2dyb3VuZC1zaXplOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYmx1ciguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmlsdGVyOiBibHVyKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWZpbHRlcjogYmx1cihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZpbHRlcjogYmx1cihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgZmlsdGVyOiBibHVyKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAcHJvY2VzczsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogQHByb2Nlc3M7IC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nOyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAcHJvY2VzczsgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgIH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjBcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcInB4XCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAcHJvY2VzczsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IEBwcm9jZXNzOyAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZzsgIH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEBwcm9jZXNzOyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYm9yZGVyLWltYWdlKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fDgxMjE5OTEsL15bXiwgXSosLy50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otYm9yZGVyLWltYWdlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby1ib3JkZXItaW1hZ2U6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGJvcmRlci1pbWFnZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmJvcmRlci1yYWRpdXMoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogQHByb2Nlc3M7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgIH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1ib3JkZXItcmFkaXVzOiBAcHJvY2VzczsgLW1vei1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmc7ICB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGJvcmRlci1yYWRpdXM6IEBwcm9jZXNzOyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcHJvY2VzczsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogQHByb2Nlc3M7IC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nOyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcHJvY2VzczsgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgIH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmJvcmRlci10b3AtcmlnaHQtcmFkaXVzKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjBcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuL15bXiwgXSosLy50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpLG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcInB4XCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcHJvY2VzczsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6IEBwcm9jZXNzOyAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZzsgIH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEBwcm9jZXNzOyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uYm94LXNoYWRvdyguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1ib3gtc2hhZG93OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJveC1zaGFkb3c6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGJveC1zaGFkb3c6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5ib3gtc2l6aW5nKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJjb250ZW50LWJveFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1ib3gtc2l6aW5nOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWJveC1zaXppbmc6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGJveC1zaXppbmc6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5icmlnaHRuZXNzKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1maWx0ZXI6IGJyaWdodG5lc3MoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otZmlsdGVyOiBicmlnaHRuZXNzKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtZmlsdGVyOiBicmlnaHRuZXNzKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmaWx0ZXI6IGJyaWdodG5lc3MoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5jYWxjKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe2Z1bmN0aW9uIHN5bnRheChwcm9wZXJ0eSxzdGFydCl7dmFyIGVuZD1cIik7XFxuXCIsZGVmaW5pdGlvbj12YWx1ZV90ZW1wLnNwbGl0KFwiLFwiKSxzeW50YXg9ZGVmaW5pdGlvblswXStcIjpcIitwcm9wZXJ0eStcIihcIisoZGVmaW5pdGlvblsxXS50cmltKCl8fDApK2VuZDtcInN0YXJ0XCI9PXN0YXJ0P3ZhbHVlPVwiMDtcXG5cIitzeW50YXg6dmFsdWUrPXN5bnRheH12YWx1ZT12YWx1ZXx8ODEyMTk5MTt2YXIgc3RhdGU9XCJAe3N0YXRlfVwiLHZhbHVlX3RlbXA9dmFsdWU7aWYoODEyMTk5MT09dmFsdWUpcmV0dXJuIHZhbHVlO3N3aXRjaChzdGF0ZSl7Y2FzZVwiMVwiOnN5bnRheChcIi13ZWJraXQtY2FsY1wiLFwic3RhcnRcIiksc3ludGF4KFwiLW1vei1jYWxjXCIpLHN5bnRheChcImNhbGNcIik7YnJlYWs7Y2FzZVwiMlwiOnN5bnRheChcIi13ZWJraXQtY2FsY1wiLFwic3RhcnRcIiksc3ludGF4KFwiLW1vei1jYWxjXCIpO2JyZWFrO2Nhc2VcIjNcIjpzeW50YXgoXCItd2Via2l0LWNhbGNcIixcInN0YXJ0XCIpLHN5bnRheChcImNhbGNcIik7YnJlYWs7Y2FzZVwiNFwiOnN5bnRheChcIi13ZWJraXQtY2FsY1wiLFwic3RhcnRcIik7YnJlYWs7Y2FzZVwiNVwiOnN5bnRheChcIi1tb3otY2FsY1wiLFwic3RhcnRcIiksc3ludGF4KFwiY2FsY1wiKTticmVhaztjYXNlXCI2XCI6c3ludGF4KFwiLW1vei1jYWxjXCIsXCJzdGFydFwiKTticmVhaztjYXNlXCI3XCI6c3ludGF4KFwiY2FsY1wiLFwic3RhcnRcIil9cmV0dXJuIHZhbHVlPXZhbHVlLnJlcGxhY2UoLzskL2csXCJcIil9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICBAc3RhdGU6IDY5OyAvLyBZZWFoIHRvdGFsbHkgcmFuZG9tIG51bWJlclxuXG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBAc3RhdGU6IDE7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kICAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDI7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIGNyb3NzXG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogMjsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogMzsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gY3Jvc3NcbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOiAzOyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogNDsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIGNyb3NzXG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDQ7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogNDsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDU7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIGNyb3NzXG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogNTsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDY7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyBjcm9zc1xuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOiA2OyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDY7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogNzsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIGNyb3NzXG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDc7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTogNzsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSB7fVxuICAgIC5pbmNlcHRpb24oQGFyZ3VtZW50cyk7XG5cblxufVxuXG4uY29sdW1uLWNvdW50KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJhdXRvXCJ9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWNvbHVtbi1jb3VudDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1jb2x1bW4tY291bnQ6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGNvbHVtbi1jb3VudDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmNvbHVtbi1nYXAoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwibm9ybWFsXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWNvbHVtbi1nYXA6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGNvbHVtbi1nYXA6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5jb2x1bW4tcnVsZSguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCJtZWRpdW0gbm9uZSBibGFja1wiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4vXlteLCBdKiwvLnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZSgvKD86LCkoPyFbXihdKlxcKSkvZyxcIlwiKSksbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtY29sdW1uLXJ1bGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otY29sdW1uLXJ1bGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGNvbHVtbi1ydWxlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uY29sdW1uLXdpZHRoKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcImF1dG9cIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcInB4XCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWNvbHVtbi13aWR0aDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1jb2x1bW4td2lkdGg6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGNvbHVtbi13aWR0aDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmNvbHVtbnMoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiYXV0byBhdXRvXCI7dmFyIG51bVJlZ2V4PS9eXFxkKyQvO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpLHZhbHVlPXZhbHVlLnNwbGl0KFwiIFwiKSksbnVtUmVnZXgudGVzdCh2YWx1ZVswXSkmJih2YWx1ZVswXT12YWx1ZVswXStcInB4XCIpLHZhbHVlLmpvaW4oXCIgXCIpfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1jb2x1bW5zOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWNvbHVtbnM6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGNvbHVtbnM6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5jb250cmFzdCguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMTAwJVwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wiJVwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1maWx0ZXI6IH5cImNvbnRyYXN0KEB7cHJvY2Vzc30pXCI7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1maWx0ZXI6IH5cImNvbnRyYXN0KEB7cHJvY2Vzc30pXCI7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZpbHRlcjogflwiY29udHJhc3QoQHtwcm9jZXNzfSlcIjsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmaWx0ZXI6IH5cImNvbnRyYXN0KEB7cHJvY2Vzc30pXCI7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmRpc3BsYXkoLi4uKSB7XG5cbiAgICBAb2xkd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzX29sZHdlYmtpdDogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT1cImZsZXhcIj09dmFsdWUmJlwiaW5saW5lLWZsZXhcIj09dmFsdWU/XCItd2Via2l0LWJveFwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPVwiZmxleFwiPT12YWx1ZSYmXCJpbmxpbmUtZmxleFwiPT12YWx1ZT9cIi1tb3otYm94XCI6ODEyMTk5MX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcbiAgICBAcHJvY2Vzc193ZWJraXQ6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9XCJmbGV4XCI9PXZhbHVlJiZcImlubGluZS1mbGV4XCI9PXZhbHVlP1wiLXdlYmtpdC1cIit2YWx1ZTo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX21zOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPVwiZmxleFwiPT12YWx1ZT9cIi1tcy1mbGV4Ym94XCI6XCJpbmxpbmUtZmxleFwiPT12YWx1ZT9cIi1tcy1pbmxpbmUtZmxleGJveFwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm5cImZsZXhcIiE9dmFsdWUmJlwiaW5saW5lLWZsZXhcIiE9dmFsdWUmJih2YWx1ZT04MTIxOTkxKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX29sZHdlYmtpdCkpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX29sZHdlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX29sZHdlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX29sZHdlYmtpdCkpIHsgZGlzcGxheTogQHByb2Nlc3Nfb2xkd2Via2l0OyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX29sZHdlYmtpdCkpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX29sZHdlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX29sZHdlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGR3ZWJraXQpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX29sZHdlYmtpdCkpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbW96KSkgeyBkaXNwbGF5OiBAcHJvY2Vzc19tb3o7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbW96KSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc193ZWJraXQpKSB7IGRpc3BsYXk6IEBwcm9jZXNzX3dlYmtpdDsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc193ZWJraXQpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7IGRpc3BsYXk6IEBwcm9jZXNzX21zOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGRpc3BsYXk6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgdHJ1ZSwgQG9sZHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmRyb3Atc2hhZG93KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZT12YWx1ZXx8ODEyMTk5MSw4MTIxOTkxPT12YWx1ZSlyZXR1cm4gdmFsdWU7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWZpbHRlcjogZHJvcC1zaGFkb3coQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy1maWx0ZXI6IGRyb3Atc2hhZG93KEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmaWx0ZXI6IGRyb3Atc2hhZG93KEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uZmlsdGVyKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwibm9uZVwiLC9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmlsdGVyOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LWZpbHRlcjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZpbHRlcjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgZmlsdGVyOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uZmxleCguLi4pIHtcblxuICAgIEBvbGRlcndlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2Vzc19vbGRlcndlYmtpdDogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZS5tYXRjaCgvXlxcZCsvKVswXXx8XCIwXCJ9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3NfbW96OiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlLm1hdGNoKC9eXFxkKy8pWzBdfHxcIjBcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCIwIDEgYXV0b1wiLC9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSB7IC13ZWJraXQtYm94LWZsZXg6IEBwcm9jZXNzX29sZGVyd2Via2l0OyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX21veikpIHsgLW1vei1ib3gtZmxleDogQHByb2Nlc3NfbW96OyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX21veikpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1mbGV4OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtZmxleDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgZmxleDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCB0cnVlLCBAb2xkZXJ3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5mbGV4LWJhc2lzKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCJhdXRvXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1mbGV4LWJhc2lzOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmbGV4LWJhc2lzOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmZsZXgtZGlyZWN0aW9uKC4uLikge1xuXG4gICAgQG9sZGVzdHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAb2xkZXJtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9sZGVyd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzX29sZGVzdHdlYmtpdDogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT1cInJvd1wiPT12YWx1ZXx8XCJjb2x1bW5cIj09dmFsdWU/XCJub3JtYWxcIjpcInJvdy1yZXZlcnNlXCI9PXZhbHVlfHxcImNvbHVtbi1yZXZlcnNlXCI9PXZhbHVlP1wicmV2ZXJzZVwiOjgxMjE5OTF9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3Nfb2xkZXJtb3o6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9XCJyb3dcIj09dmFsdWV8fFwiY29sdW1uXCI9PXZhbHVlP1wibm9ybWFsXCI6XCJyb3ctcmV2ZXJzZVwiPT12YWx1ZXx8XCJjb2x1bW4tcmV2ZXJzZVwiPT12YWx1ZT9cInJldmVyc2VcIjo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX29sZGVyd2Via2l0OiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPVwicm93XCI9PXZhbHVlfHxcInJvdy1yZXZlcnNlXCI9PXZhbHVlP1wiaG9yaXpvbnRhbFwiOlwiY29sdW1uXCI9PXZhbHVlfHxcImNvbHVtbi1yZXZlcnNlXCI9PXZhbHVlP1widmVydGljYWxcIjo4MTIxOTkxfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX21vejogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT1cInJvd1wiPT12YWx1ZXx8XCJyb3ctcmV2ZXJzZVwiPT12YWx1ZT9cImhvcml6b250YWxcIjpcImNvbHVtblwiPT12YWx1ZXx8XCJjb2x1bW4tcmV2ZXJzZVwiPT12YWx1ZT9cInZlcnRpY2FsXCI6ODEyMTk5MX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJyb3dcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19vbGRlc3R3ZWJraXQpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGRlc3R3ZWJraXQpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19vbGRlc3R3ZWJraXQpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGRlc3R3ZWJraXQpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIHsgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBAcHJvY2Vzc19vbGRlc3R3ZWJraXQ7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb2xkZXN0d2Via2l0KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfb2xkZXN0d2Via2l0KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfb2xkZXN0d2Via2l0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX29sZGVzdHdlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb2xkZXN0d2Via2l0KSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3Nfb2xkZXJtb3opKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX29sZGVybW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfb2xkZXJtb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfb2xkZXJtb3opKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19vbGRlcm1veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfb2xkZXJtb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfb2xkZXJtb3opKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX29sZGVybW96KSkgeyAtbW96LWJveC1kaXJlY3Rpb246IEBwcm9jZXNzX29sZGVybW96OyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19vbGRlcm1veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb2xkZXJtb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vbGRlcm1veikpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGRlcm1veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29sZGVybW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vbGRlcm1veikpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGRlcm1veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb2xkZXJtb3opKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSB7IC13ZWJraXQtYm94LW9yaWVudDogQHByb2Nlc3Nfb2xkZXJ3ZWJraXQ7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19vbGRlcndlYmtpdCkpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3Nfb2xkZXJ3ZWJraXQpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX29sZGVyd2Via2l0KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19vbGRlcndlYmtpdCkpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbW96KSkgeyAtbW96LWJveC1vcmllbnQ6IEBwcm9jZXNzX21vejsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tb3opKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy1mbGV4LWRpcmVjdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDYpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA3KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgZmxleC1kaXJlY3Rpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA3KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgdHJ1ZSwgQG9sZGVzdHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCB0cnVlLCBAb2xkZXJtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgdHJ1ZSwgQG9sZGVyd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA2LCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA3LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uZmxleC1ncm93KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1mbGV4LWdyb3c6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGZsZXgtZ3JvdzogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5mbGV4LXNocmluayguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcIjFcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmxleC1zaHJpbms6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGZsZXgtc2hyaW5rOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmZsZXgtd3JhcCguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJub3dyYXBcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmxleC13cmFwOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtZmxleC13cmFwOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmbGV4LXdyYXA6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uZm9udC1mYWNlKEBmb250bmFtZSwgQGZvbnRmaWxlLCBAZm9udHdlaWdodDpub3JtYWwsIEBmb250c3R5bGU6bm9ybWFsKSB7XG5cbiAgICBmb250LWZhbWlseTogXCJAe2ZvbnRuYW1lfVwiO1xuICAgIHNyYzogdXJsKFwiQHtmb250ZmlsZX0uZW90XCIpO1xuICAgIHNyYzogdXJsKFwiQHtmb250ZmlsZX0uZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB1cmwoXCJAe2ZvbnRmaWxlfS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gICAgdXJsKFwiQHtmb250ZmlsZX0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHVybChcIkB7Zm9udGZpbGV9LnN2ZyNAe2ZvbnRuYW1lfVwiKSBmb3JtYXQoXCJzdmdcIik7XG4gICAgZm9udC13ZWlnaHQ6IEBmb250d2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6IEBmb250c3R5bGU7XG5cbn1cblxuLmdyYXlzY2FsZSguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wiJVwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1maWx0ZXI6IGdyYXlzY2FsZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZpbHRlcjogZ3JheXNjYWxlKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmaWx0ZXI6IGdyYXlzY2FsZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmh1ZS1yb3RhdGUoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjBcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcImRlZ1wifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otZmlsdGVyOiBodWUtcm90YXRlKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtZmlsdGVyOiBodWUtcm90YXRlKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBmaWx0ZXI6IGh1ZS1yb3RhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5pbnZlcnQoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjEwMCVcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcIiVcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmlsdGVyOiBpbnZlcnQoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otZmlsdGVyOiBpbnZlcnQoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy1maWx0ZXI6IGludmVydChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgZmlsdGVyOiBpbnZlcnQoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5qdXN0aWZ5LWNvbnRlbnQoLi4uKSB7XG5cbiAgICBAb2xkZXN0d2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcImZsZXgtc3RhcnRcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcbiAgICBAcHJvY2Vzc19tb3o6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwic3RhcnRcIixcImZsZXgtc3RhcnRcIj09dmFsdWU/dmFsdWU9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dmFsdWU/dmFsdWU9XCJlbmRcIjooXCJzcGFjZS1iZXR3ZWVuXCI9PXZhbHVlfHxcInNwYWNlLWFyb3VuZFwiPT12YWx1ZSkmJih2YWx1ZT1cImp1c3RpZnlcIiksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG4gICAgQHByb2Nlc3NfbXM6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwic3RhcnRcIixcImZsZXgtc3RhcnRcIj09dmFsdWU/dmFsdWU9XCJzdGFydFwiOlwiZmxleC1lbmRcIj09dmFsdWU/dmFsdWU9XCJlbmRcIjpcInNwYWNlLWJldHdlZW5cIj09dmFsdWU/dmFsdWU9XCJqdXN0aWZ5XCI6XCJzcGFjZS1hcm91bmRcIj09dmFsdWUmJih2YWx1ZT1cImRpc3RyaWJ1dGVcIiksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWJveC1wYWNrOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tb3opKSB7IC1tb3otYm94LXBhY2s6IEBwcm9jZXNzX21vejsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tb3opKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBAcHJvY2Vzc19tczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX21zKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtZmxleC1wYWNrOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBqdXN0aWZ5LWNvbnRlbnQ6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgdHJ1ZSwgQG9sZGVzdHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLmtleWZyYW1lcyguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7ZnVuY3Rpb24gc3ludGF4KHN0YXJ0LHNlbGVjdG9yLHByZWZpeCl7dmFyIGVuZD1cIn1cXG5cIixkZWZpbml0aW9uPXZhbHVlX3RlbXAuc3BsaXQoLyheW2EtekEtWjAtOS1dKyksL2cpLGtleWZyYW1lcz1zZWxlY3RvcitcIiBcIitkZWZpbml0aW9uWzFdK1wie1wiLHByZWZpeGVzPVtcIi13ZWJraXQtXCIsXCItbW96LVwiLFwiLW1zLVwiLFwiXCJdO3ByZWZpeD9wcmVmaXhlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSl7LTEhPT12YWx1ZS5pbmRleE9mKHByb3BlcnR5KSYmKGRlZmluaXRpb25bMl09ZGVmaW5pdGlvblsyXS5yZXBsYWNlKG5ldyBSZWdFeHAocHJvcGVydHksXCJnXCIpLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gcHJlZml4K21hdGNofSkpfSk6ZGVmaW5pdGlvblsyXT1kZWZpbml0aW9uWzJdLnJlcGxhY2UoL3soW159XSspfS9nLGZ1bmN0aW9uKG1hdGNoLHN1Yil7dmFyIHN1YlNwbGl0PXN1Yi5zcGxpdChcIjtcIik7c3ViU3BsaXQuZm9yRWFjaChmdW5jdGlvbihjc3MsaW5kZXgpe3ByZWZpeGVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KXstMSE9PWNzcy5pbmRleE9mKHByb3BlcnR5KSYmKHN1YlNwbGl0W2luZGV4XT1cIlwiLHByZWZpeGVzLmZvckVhY2goZnVuY3Rpb24odmVuZG9yKXtzdWJTcGxpdFtpbmRleF0rPWNzcy50cmltKCkucmVwbGFjZShuZXcgUmVnRXhwKHByb3BlcnR5LFwiZ1wiKSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIHZlbmRvcittYXRjaH0pK1wiO1wifSkpfSl9KTt2YXIgdGVtcD1zdWJTcGxpdC5qb2luKFwiXCIpO3JldHVybiBtYXRjaC5yZXBsYWNlKHN1Yix0ZW1wKX0pLGtleWZyYW1lcys9ZGVmaW5pdGlvblsyXStlbmQsXCJzdGFydFwiPT1zdGFydD92YWx1ZT1cIjA7IH0gXFxuXCIra2V5ZnJhbWVzOlwic3RhcnRlbmRcIj09c3RhcnQ/dmFsdWU9XCIwOyB9IFxcblwiK2tleWZyYW1lcy5yZXBsYWNlKGVuZCxcIlwiKTp2YWx1ZSs9XCJlbmRcIj09c3RhcnQ/a2V5ZnJhbWVzLnJlcGxhY2UoZW5kLFwiXCIpOmtleWZyYW1lc312YWx1ZT12YWx1ZXx8ODEyMTk5MTt2YXIgc3RhdGU9XCJAe3N0YXRlfVwiLHZhbHVlX3RlbXA9dmFsdWU7aWYoODEyMTk5MT09dmFsdWUpcmV0dXJuIHZhbHVlO3ZhciBwcmVmaXhlZFByb3BlcnRpZXM9W1wiYW5pbWF0aW9uXCIsXCJ0cmFuc2Zvcm1cIixcImZpbHRlclwiXTtzd2l0Y2goc3RhdGUpe2Nhc2VcIjFcIjpzeW50YXgoXCJzdGFydFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKSxzeW50YXgobnVsbCxcIkAtbW96LWtleWZyYW1lc1wiLFwiLW1vei1cIiksc3ludGF4KG51bGwsXCJALW8ta2V5ZnJhbWVzXCIsXCItby1cIiksc3ludGF4KFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjJcIjpzeW50YXgoXCJzdGFydFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKSxzeW50YXgobnVsbCxcIkAtbW96LWtleWZyYW1lc1wiLFwiLW1vei1cIiksc3ludGF4KFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjNcIjpzeW50YXgoXCJzdGFydFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKSxzeW50YXgobnVsbCxcIkAtbW96LWtleWZyYW1lc1wiLFwiLW1vei1cIiksc3ludGF4KFwiZW5kXCIsXCJALW8ta2V5ZnJhbWVzXCIsXCItby1cIik7YnJlYWs7Y2FzZVwiNFwiOnN5bnRheChcInN0YXJ0XCIsXCJALXdlYmtpdC1rZXlmcmFtZXNcIixcIi13ZWJraXQtXCIpLHN5bnRheChudWxsLFwiQC1vLWtleWZyYW1lc1wiLFwiLW8tXCIpLHN5bnRheChcImVuZFwiLFwiQGtleWZyYW1lc1wiKTticmVhaztjYXNlXCI1XCI6c3ludGF4KFwic3RhcnRcIixcIkAtd2Via2l0LWtleWZyYW1lc1wiLFwiLXdlYmtpdC1cIiksc3ludGF4KFwiZW5kXCIsXCJALW1vei1rZXlmcmFtZXNcIixcIi1tb3otXCIpO2JyZWFrO2Nhc2VcIjZcIjpzeW50YXgoXCJzdGFydFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKSxzeW50YXgoXCJlbmRcIixcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKTticmVhaztjYXNlXCI3XCI6c3ludGF4KFwic3RhcnRcIixcIkAtd2Via2l0LWtleWZyYW1lc1wiLFwiLXdlYmtpdC1cIiksc3ludGF4KFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjhcIjpzeW50YXgoXCJzdGFydGVuZFwiLFwiQC13ZWJraXQta2V5ZnJhbWVzXCIsXCItd2Via2l0LVwiKTticmVhaztjYXNlXCI5XCI6c3ludGF4KFwic3RhcnRcIixcIkAtbW96LWtleWZyYW1lc1wiLFwiLW1vei1cIiksc3ludGF4KG51bGwsXCJALW8ta2V5ZnJhbWVzXCIsXCItby1cIiksc3ludGF4KFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjEwXCI6c3ludGF4KFwic3RhcnRcIixcIkAtbW96LWtleWZyYW1lc1wiLFwiLW1vei1cIiksc3ludGF4KFwiZW5kXCIsXCJALW8ta2V5ZnJhbWVzXCIsXCItby1cIik7YnJlYWs7Y2FzZVwiMTFcIjpzeW50YXgoXCJzdGFydFwiLFwiQC1tb3ota2V5ZnJhbWVzXCIsXCItbW96LVwiKSxzeW50YXgoXCJlbmRcIixcIkBrZXlmcmFtZXNcIik7YnJlYWs7Y2FzZVwiMTJcIjpzeW50YXgoXCJzdGFydGVuZFwiLFwiQC1tb3ota2V5ZnJhbWVzXCIsXCItbW96LVwiKTticmVhaztjYXNlXCIxM1wiOnN5bnRheChcInN0YXJ0XCIsXCJALW8ta2V5ZnJhbWVzXCIsXCItby1cIiksc3ludGF4KFwiZW5kXCIsXCJAa2V5ZnJhbWVzXCIpO2JyZWFrO2Nhc2VcIjE0XCI6c3ludGF4KFwic3RhcnRlbmRcIixcIkAtby1rZXlmcmFtZXNcIixcIi1vLVwiKTticmVhaztjYXNlXCIxNVwiOnN5bnRheChcInN0YXJ0ZW5kXCIsXCJAa2V5ZnJhbWVzXCIpfXJldHVybiB2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIEBzdGF0ZTogMTsgLy8gRGVmYXVsdCBzdGF0ZSAxIG1lYW5zIGFsbCBwcmVmaXhlc1xuXG4gICAgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH1cblxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6IDE7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjI7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTozOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MzsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjQ7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTo0OyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjU7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTo1OyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAvLyBjcm9zc1xuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6NTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjU7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjY7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjY7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLy8gY3Jvc3NcbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6NjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6NjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6NzsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjc7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC8vIGNyb3NzXG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjc7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTo3OyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjg7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjg7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAvLyBjcm9zc1xuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6ODsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjg7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZTo4OyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6ODsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjg7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjg7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6OTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjk7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTA7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjEwOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC8vIGNyb3NzXG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjEwOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTE7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLy8gY3Jvc3NcbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTE7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTI7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAvLyBjcm9zc1xuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTI7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjEyOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTI7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjEyOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxMzsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTM7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLy8gY3Jvc3NcbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTM7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjEzOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTQ7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTQ7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC8vIGNyb3NzXG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNDsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTU7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAvLyBjcm9zc1xuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTU7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTU7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjE1OyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MTU7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgKEB3M2NfbG9jYWwgPSB0cnVlKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7IEBzdGF0ZToxNTsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEB3ZWJraXRfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIChAbW96ID0gdHJ1ZSkgYW5kIChAb3BlcmEgPSB0cnVlKSBhbmQgbm90IChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAb3BlcmFfbG9jYWwgPSB0cnVlKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEBvcGVyYSA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEBvcGVyYV9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQHdlYmtpdCA9IHRydWUpIGFuZCBub3QgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEB3ZWJraXQgPSB0cnVlKSBhbmQgKEBtb3ogPSB0cnVlKSBhbmQgbm90IChAb3BlcmEgPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEB3ZWJraXQgPSB0cnVlKSBhbmQgbm90IChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQG9wZXJhID0gdHJ1ZSkgYW5kIChAdzNjID0gdHJ1ZSkgYW5kIG5vdCAoQHdlYmtpdF9sb2NhbCA9IHRydWUpIGFuZCBub3QgKEB3M2NfbG9jYWwgPSB0cnVlKSAge31cbiAgICAvLyAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgIHt9XG4gICAgLy8gLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQHdlYmtpdCA9IHRydWUpIGFuZCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAd2Via2l0X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQG1vel9sb2NhbCA9IHRydWUpICB7fVxuICAgIC8vIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAd2Via2l0ID0gdHJ1ZSkgYW5kIG5vdCAoQG1veiA9IHRydWUpIGFuZCBub3QgKEBvcGVyYSA9IHRydWUpIGFuZCBub3QgKEB3M2MgPSB0cnVlKSAge31cblxuICAgIC8vLmluY2VwdGlvbihAYXJndW1lbnRzKTtcblxuXG5cblxufVxuXG4ub3BhY2l0eSguLi4pIHtcblxuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAd2Via2l0X2xvY2FsOiBmYWxzZTtcbiAgICBAbW96X2xvY2FsOiBmYWxzZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3NfbXM6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMClcIixcImFscGhhKG9wYWNpdHk9XCIrTWF0aC5mbG9vcigxMDAqdmFsdWUpK1wiKVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcIjFcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7ICB6b29tOiAxOyBmaWx0ZXI6IEBwcm9jZXNzX21zOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbXMpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21zKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbXMpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtb3BhY2l0eTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1vcGFjaXR5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBvcGFjaXR5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4ub3JkZXIoLi4uKSB7XG5cbiAgICBAb2xkZXJ3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1ib3gtb3JkaW5hbC1ncm91cDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZsZXgtb3JkZXI6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtb3JkZXI6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IG9yZGVyOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIHRydWUsIEBvbGRlcndlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnBlcnNwZWN0aXZlKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIm5vbmVcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcInB4XCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXBlcnNwZWN0aXZlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXBlcnNwZWN0aXZlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyBwZXJzcGVjdGl2ZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnBlcnNwZWN0aXZlLW9yaWdpbiguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCI1MCUgNTAlXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCIlXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHBlcnNwZWN0aXZlLW9yaWdpbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnBsYWNlaG9sZGVyKEBjb2xvcjpob3RwaW5rLCBAZWxlbWVudDogMDgxMjE5OTEpIHtcbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQGVsZW1lbnQgPSAwODEyMTk5MSkge1xuICAgICAgICBAe2VsZW1lbnR9Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIH1cbiAgICAgICAgQHtlbGVtZW50fTotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIH1cbiAgICBAe2VsZW1lbnR9OjotbW96LXBsYWNlaG9sZGVyIHtcbmNvbG9yOiBAY29sb3I7XG59XG4gICAgQHtlbGVtZW50fTotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuY29sb3I6IEBjb2xvcjtcbn1cbiAgICB9XG4uaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAZWxlbWVudCA9IDA4MTIxOTkxKSB7XG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgfVxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgfVxuICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogQGNvbG9yO1xuICAgIH1cbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgfVxufVxuLmluY2VwdGlvbihAYXJndW1lbnRzKTtcbiAgICB9XG5cbi5yb3RhdGUoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJkZWdcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLXRyYW5zZm9ybTogcm90YXRlKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiByb3RhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybTogcm90YXRlKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA1LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4ucm90YXRlM2QoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMCwgMCwgMCwgMFwiLHZhbHVlPXZhbHVlLnJlcGxhY2UoLyxcXHMqXFxkKyQvLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJkZWdcIn0pfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogcm90YXRlM2QoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLXRyYW5zZm9ybTogcm90YXRlM2QoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZTNkKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IHJvdGF0ZTNkKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA1LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4ucm90YXRlWCguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjBcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcImRlZ1wifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGVYKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby10cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybTogcm90YXRlWChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnJvdGF0ZVkoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJkZWdcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogcm90YXRlWShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiByb3RhdGVZKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiByb3RhdGVZKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IHJvdGF0ZVkoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5yb3RhdGVaKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wiZGVnXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLXRyYW5zZm9ybTogcm90YXRlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiByb3RhdGVaKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA1LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uc2F0dXJhdGUoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjEwMCVcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcIiVcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtZmlsdGVyOiB+XCJzYXR1cmF0ZShAe3Byb2Nlc3N9KVwiOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otZmlsdGVyOiB+XCJzYXR1cmF0ZShAe3Byb2Nlc3N9KVwiOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy1maWx0ZXI6IH5cInNhdHVyYXRlKEB7cHJvY2Vzc30pXCI7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgZmlsdGVyOiB+XCJzYXR1cmF0ZShAe3Byb2Nlc3N9KVwiOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zY2FsZSguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCIxXCJ9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtOiBzY2FsZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBzY2FsZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybTogc2NhbGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zY2FsZTNkKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcIjEsIDEsIDFcIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogc2NhbGUzZChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBzY2FsZTNkKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiBzY2FsZTNkKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IHNjYWxlM2QoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zY2FsZVgoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHNjYWxlWChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBzY2FsZVgoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm06IHNjYWxlWChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiBzY2FsZVgoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zY2FsZVkoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHNjYWxlWShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBzY2FsZVkoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm06IHNjYWxlWShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiBzY2FsZVkoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zY2FsZVooLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiMVwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHNjYWxlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBzY2FsZVooQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm06IHNjYWxlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiBzY2FsZVooQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zZWxlY3Rpb24oLi4uKSB7XG5cbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe2Z1bmN0aW9uIHN5bnRheChzdGFydCxzZWxlY3Rvcil7dmFyIGVuZD1cIn1cXG5cIixkZWZpbml0aW9uPXZhbHVlX3RlbXAuc3BsaXQoXCIsXCIpLHN5bnRheD0oZGVmaW5pdGlvblsxXXx8XCJcIikrc2VsZWN0b3IrXCJ7XCIrZGVmaW5pdGlvblswXStlbmQ7XCJzdGFydFwiPT1zdGFydD92YWx1ZT1cIjA7IH0gXFxuXCIrc3ludGF4Olwic3RhcnRlbmRcIj09c3RhcnQ/dmFsdWU9XCIwOyB9IFxcblwiK3N5bnRheC5yZXBsYWNlKGVuZCxcIlwiKTp2YWx1ZSs9XCJlbmRcIj09c3RhcnQ/c3ludGF4LnJlcGxhY2UoZW5kLFwiXCIpOnN5bnRheH12YWx1ZT12YWx1ZXx8ODEyMTk5MTt2YXIgc3RhdGU9XCJAe3N0YXRlfVwiLHZhbHVlX3RlbXA9dmFsdWU7aWYoODEyMTk5MT09dmFsdWUpcmV0dXJuIHZhbHVlO3N3aXRjaChzdGF0ZSl7Y2FzZVwiMVwiOnN5bnRheChcInN0YXJ0XCIsXCI6OnNlbGVjdGlvblwiKSxzeW50YXgoXCJlbmRcIixcIjo6LW1vei1zZWxlY3Rpb25cIik7YnJlYWs7Y2FzZVwiMlwiOnN5bnRheChcInN0YXJ0ZW5kXCIsXCI6OnNlbGVjdGlvblwiKTticmVhaztjYXNlXCIzXCI6c3ludGF4KFwic3RhcnRlbmRcIixcIjo6LW1vei1zZWxlY3Rpb25cIil9cmV0dXJuIHZhbHVlPXZhbHVlLnJlcGxhY2UoLzskL2csXCJcIil9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICBAc3RhdGU6IDY5OyAvLyBZZWFoIHRvdGFsbHkgcmFuZG9tIG51bWJlclxuXG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOiAxOyBsZXNzaGF0LXNlbGVjdG9yIHsgLWxoLXByb3BlcnR5OiBAcHJvY2VzczsgfSB9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MjsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gY3Jvc3NcbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjI7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIG5vdCAoQG1veiA9IHRydWUpIGFuZCAoQHczYyA9IHRydWUpIGFuZCAoQHczY19sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSAgeyBAc3RhdGU6MzsgbGVzc2hhdC1zZWxlY3RvciB7IC1saC1wcm9wZXJ0eTogQHByb2Nlc3M7IH0gfVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgKEBtb3pfbG9jYWwgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHt9XG4gICAgLy8gY3Jvc3NcbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgIHsgQHN0YXRlOjM7IGxlc3NoYXQtc2VsZWN0b3IgeyAtbGgtcHJvcGVydHk6IEBwcm9jZXNzOyB9IH1cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCAoQG1vel9sb2NhbCA9IHRydWUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpICB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAbW96X2xvY2FsID0gdHJ1ZSkgYW5kIG5vdCAoQHczY19sb2NhbCA9IHRydWUpIHt9XG4gICAgLmluY2VwdGlvbiAoQGFyZ3VtZW50cykgd2hlbiBub3QgKEBtb3ogPSB0cnVlKSBhbmQgKEB3M2MgPSB0cnVlKSBhbmQgbm90IChAdzNjX2xvY2FsID0gdHJ1ZSkge31cbiAgICAuaW5jZXB0aW9uIChAYXJndW1lbnRzKSB3aGVuIChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIGFuZCBub3QgKEBtb3pfbG9jYWwgPSB0cnVlKSB7fVxuICAgIC5pbmNlcHRpb24gKEBhcmd1bWVudHMpIHdoZW4gbm90IChAbW96ID0gdHJ1ZSkgYW5kIG5vdCAoQHczYyA9IHRydWUpIHt9XG5cbiAgICAuaW5jZXB0aW9uKEBhcmd1bWVudHMpO1xuXG5cbn1cblxuLnNlcGlhKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIxMDAlXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCIlXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LWZpbHRlcjogc2VwaWEoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otZmlsdGVyOiBzZXBpYShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLWZpbHRlcjogc2VwaWEoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IGZpbHRlcjogc2VwaWEoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi5zaXplKEBzcXVhcmUpIHtcbiAgICBAdW5pdDogJ3B4JztcbiAgICAucHJvY2VzcyhAc3F1YXJlKSB3aGVuIChpc3BpeGVsKEBzcXVhcmUpKSwgKGlzZW0oQHNxdWFyZSkpLCAoaXNwZXJjZW50YWdlKEBzcXVhcmUpKSwgKGlza2V5d29yZChAc3F1YXJlKSkge1xuICAgICAgICB3aWR0aDogQHNxdWFyZTtcbiAgICAgICAgaGVpZ2h0OiBAc3F1YXJlO1xuICAgIH1cblxuICAgIC5wcm9jZXNzKEBzcXVhcmUpIHdoZW4gbm90IChpc3BpeGVsKEBzcXVhcmUpKSBhbmQgbm90IChpc2VtKEBzcXVhcmUpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHNxdWFyZSkpIGFuZCBub3QgKGlzc3RyaW5nKEBzcXVhcmUpKSBhbmQgbm90IChpc2tleXdvcmQoQHNxdWFyZSkpIHtcbiAgICAgICAgd2lkdGg6IH5gQHtzcXVhcmV9ICsgQHt1bml0fWA7XG4gICAgICAgIGhlaWdodDogfmBAe3NxdWFyZX0gKyBAe3VuaXR9YDtcbiAgICB9XG5cbiAgICAucHJvY2VzcyhAc3F1YXJlKTtcblxufVxuXG4uc2l6ZShAd2lkdGgsIEBoZWlnaHQpIHtcbiAgICBAdW5pdDogJ3B4JztcbiAgICAucHJvY2VzcyhAd2lkdGgsIEBoZWlnaHQpIHdoZW4gKGlzcGl4ZWwoQHdpZHRoKSkgYW5kIChpc3BpeGVsKEBoZWlnaHQpKSwgKGlzZW0oQHdpZHRoKSkgYW5kIChpc2VtKEBoZWlnaHQpKSwgKGlzcGVyY2VudGFnZShAd2lkdGgpKSBhbmQgKGlzcGVyY2VudGFnZShAaGVpZ2h0KSksIChpc2tleXdvcmQoQHdpZHRoKSkgYW5kIChpc2tleXdvcmQoQGhlaWdodCkpIHtcbiAgICAgICAgd2lkdGg6IEB3aWR0aDtcbiAgICAgICAgaGVpZ2h0OiBAaGVpZ2h0O1xuICAgIH1cblxuICAgIC5wcm9jZXNzKEB3aWR0aCwgQGhlaWdodCkgd2hlbiBub3QgKGlzcGl4ZWwoQHdpZHRoKSkgYW5kIG5vdCAoaXNwaXhlbChAaGVpZ2h0KSkgYW5kIG5vdCAoaXNlbShAd2lkdGgpKSBhbmQgbm90IChpc2VtKEBoZWlnaHQpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHdpZHRoKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBoZWlnaHQpKSBhbmQgbm90IChpc2tleXdvcmQoQHdpZHRoKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBoZWlnaHQpKSB7XG4gICAgICAgIHdpZHRoOiB+YEB7d2lkdGh9ICsgQHt1bml0fWA7XG4gICAgICAgIGhlaWdodDogfmBAe2hlaWdodH0gKyBAe3VuaXR9YDtcbiAgICB9XG5cbiAgICAucHJvY2VzcyhAd2lkdGgsIEBoZWlnaHQpIHdoZW4gbm90IChpc3BpeGVsKEB3aWR0aCkpIGFuZCAoaXNwaXhlbChAaGVpZ2h0KSksIG5vdCAoaXNlbShAd2lkdGgpKSBhbmQgKGlzZW0oQGhlaWdodCkpLCBub3QgKGlzcGVyY2VudGFnZShAd2lkdGgpKSBhbmQgKGlzcGVyY2VudGFnZShAaGVpZ2h0KSksIG5vdCAoaXNrZXl3b3JkKEB3aWR0aCkpIGFuZCAoaXNrZXl3b3JkKEBoZWlnaHQpKSB7XG4gICAgICAgIHdpZHRoOiB+YEB7d2lkdGh9ICsgQHt1bml0fWA7XG4gICAgICAgIGhlaWdodDogQGhlaWdodDtcbiAgICB9XG5cbiAgICAucHJvY2VzcyhAd2lkdGgsIEBoZWlnaHQpIHdoZW4gKGlzcGl4ZWwoQHdpZHRoKSkgYW5kIG5vdCAoaXNwaXhlbChAaGVpZ2h0KSksIChpc2VtKEB3aWR0aCkpIGFuZCBub3QgKGlzZW0oQGhlaWdodCkpLCAoaXNwZXJjZW50YWdlKEB3aWR0aCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAaGVpZ2h0KSksIChpc2tleXdvcmQoQHdpZHRoKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBoZWlnaHQpKSB7XG4gICAgICAgIHdpZHRoOiBAd2lkdGg7XG4gICAgICAgIGhlaWdodDogfmBAe2hlaWdodH0gKyBAe3VuaXR9YDtcbiAgICB9XG5cbiAgICAucHJvY2VzcyhAd2lkdGgsIEBoZWlnaHQpO1xuXG59XG5cbi5za2V3KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wiZGVnXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHNrZXcoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1vLXRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLXRyYW5zZm9ybTogc2tldyhAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiBza2V3KEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAbXMsIEBtc19sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA1LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4uc2tld1goLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJkZWdcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHNrZXdYKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby10cmFuc2Zvcm06IHNrZXdYKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiBza2V3WChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiBza2V3WChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnNrZXdZKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wiZGVnXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zZm9ybTogc2tld1koQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtOiBza2V3WShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBza2V3WShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLXRyYW5zZm9ybTogc2tld1koQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybTogc2tld1koQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2Zvcm0oLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCJub25lXCI7dmFyIGZ1bmN0aW9ucz17dHJhbnNsYXRlOlwicHhcIixyb3RhdGU6XCJkZWdcIixyb3RhdGUzZDpcImRlZ1wiLHNrZXc6XCJkZWdcIn07L15cXHcqXFwoP1thLXowLTkuXSpcXCk/Ly50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UoLyg/OiwpKD8hW14oXSpcXCkpL2csXCJcIikpO2Zvcih2YXIgaSBpbiBmdW5jdGlvbnMpdmFsdWUuaW5kZXhPZihpKT49MCYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChpK1wiW1xcXFx3XT9cXFxcKFthLXowLTksICVdKlxcXFwpXCIpLGZ1bmN0aW9uKG1hdGNoKXt2YXIgcmVnZXg9LyhcXGQrXFwuP1xcZCopKD8hXFx3fCUpL2c7cmV0dXJuXCJyb3RhdGUzZFwiPT1pJiYocmVnZXg9LyxcXHMqXFxkKyQvKSxtYXRjaC5yZXBsYWNlKHJlZ2V4LGZ1bmN0aW9uKGlubmVyTWF0Y2gpe3JldHVybiBpbm5lck1hdGNoK2Z1bmN0aW9uc1tpXX0pfSkpO3JldHVybiB2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2Zvcm0tb3JpZ2luKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiNTAlIDUwJSAwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCIlXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtLW9yaWdpbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtLW9yaWdpbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLXRyYW5zZm9ybS1vcmlnaW46IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybS1vcmlnaW46IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2Zvcm0tc3R5bGUoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWU9dmFsdWV8fFwiZmxhdFwifSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtLXN0eWxlOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby10cmFuc2Zvcm0tc3R5bGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm0tc3R5bGU6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybS1zdHlsZTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQG1zLCBAbXNfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNSwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnRyYW5zaXRpb24oLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2Vzc193ZWJraXQ6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCJhbGwgMCBlYXNlIDBcIjt2YXIgcHJlZml4ZWRQcm9wZXJ0aWVzPVtcImJhY2tncm91bmQtc2l6ZVwiLFwiYm9yZGVyLXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXNcIixcImJvcmRlci10b3AtbGVmdC1yYWRpdXNcIixcImJvcmRlci10b3AtcmlnaHQtcmFkaXVzXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHByZWZpeD1cIi13ZWJraXQtXCIsdmFsdWVSZWdleD0vKD86XFxkKSg/Om1zfHMpL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCUpL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxwcmVmaXhlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSl7LTEhPT12YWx1ZS5pbmRleE9mKHByb3BlcnR5KSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChwcm9wZXJ0eSxcImdcIiksZnVuY3Rpb24obWF0Y2gpe3JldHVybiBwcmVmaXgrbWF0Y2h9KSl9KSx2YWx1ZVJlZ2V4LnRlc3QodmFsdWUpfHxcIjBcIj09PXZhbHVlfHwodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCs9cGFyc2VGbG9hdChtYXRjaCwxMCk+MTA/XCJtc1wiOlwic1wifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX21vejogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcImFsbCAwIGVhc2UgMFwiO3ZhciBwcmVmaXhlZFByb3BlcnRpZXM9W1wiYmFja2dyb3VuZC1zaXplXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHByZWZpeD1cIi1tb3otXCIsdmFsdWVSZWdleD0vKD86XFxkKSg/Om1zfHMpL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCUpL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxwcmVmaXhlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSl7LTEhPT12YWx1ZS5pbmRleE9mKHByb3BlcnR5KSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChwcm9wZXJ0eSxcImdcIiksZnVuY3Rpb24obWF0Y2gpe3JldHVybiBwcmVmaXgrbWF0Y2h9KSl9KSx2YWx1ZVJlZ2V4LnRlc3QodmFsdWUpfHxcIjBcIj09PXZhbHVlfHwodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCs9cGFyc2VGbG9hdChtYXRjaCwxMCk+MTA/XCJtc1wiOlwic1wifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX29wZXJhOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiYWxsIDAgZWFzZSAwXCI7dmFyIHByZWZpeGVkUHJvcGVydGllcz1bXCJ0cmFuc2Zvcm1cIl0scHJlZml4PVwiLW8tXCIsdmFsdWVSZWdleD0vKD86XFxkKSg/Om1zfHMpL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCUpL2dpO3JldHVybi9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKSxwcmVmaXhlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSl7LTEhPT12YWx1ZS5pbmRleE9mKHByb3BlcnR5KSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChwcm9wZXJ0eSxcImdcIiksZnVuY3Rpb24obWF0Y2gpe3JldHVybiBwcmVmaXgrbWF0Y2h9KSl9KSx2YWx1ZVJlZ2V4LnRlc3QodmFsdWUpfHxcIjBcIj09PXZhbHVlfHwodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCs9cGFyc2VGbG9hdChtYXRjaCwxMCk+MTA/XCJtc1wiOlwic1wifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiYWxsIDAgZWFzZSAwXCI7dmFyIHByZWZpeGVzPVtcIi13ZWJraXQtXCIsXCItbW96LVwiLFwiLW8tXCIsXCJcIl0scHJlZml4ZWRQcm9wZXJ0aWVzPVtcImNvbHVtblwiLFwidHJhbnNmb3JtXCIsXCJmaWx0ZXJcIl0sdmFsdWVSZWdleD0vKD86XFxkKSg/Om1zfHMpL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCUpL2dpOy9eW14sIF0qLC8udGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKC8oPzosKSg/IVteKF0qXFwpKS9nLFwiXCIpKTt2YXIgc3ViU3BsaXQ9dmFsdWUuc3BsaXQoLyg/OiwpKD8hW14oXSpcXCkpL2cpO3JldHVybiBzdWJTcGxpdC5mb3JFYWNoKGZ1bmN0aW9uKGNzcyxpbmRleCl7cHJlZml4ZWRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24ocHJvcGVydHkpey0xIT09Y3NzLmluZGV4T2YocHJvcGVydHkpJiYoc3ViU3BsaXRbaW5kZXhdPVwiXCIscHJlZml4ZXMuZm9yRWFjaChmdW5jdGlvbih2ZW5kb3IsaSl7c3ViU3BsaXRbaW5kZXhdKz1jc3MudHJpbSgpLnJlcGxhY2UobmV3IFJlZ0V4cChwcm9wZXJ0eSxcImdcIiksZnVuY3Rpb24obWF0Y2gpe3JldHVybiB2ZW5kb3IrbWF0Y2h9KSxpPHByZWZpeGVzLmxlbmd0aC0xJiYoc3ViU3BsaXRbaW5kZXhdKz1cIixcIil9KSl9KX0pLHZhbHVlPXN1YlNwbGl0LmpvaW4oXCIsXCIpLHZhbHVlUmVnZXgudGVzdCh2YWx1ZSl8fFwiMFwiPT09dmFsdWV8fCh2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoKz1wYXJzZUZsb2F0KG1hdGNoLDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc193ZWJraXQpKSB7IC13ZWJraXQtdHJhbnNpdGlvbjogQHByb2Nlc3Nfd2Via2l0OyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX3dlYmtpdCkpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbW96KSkgeyAtbW96LXRyYW5zaXRpb246IEBwcm9jZXNzX21vejsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc19tb3opKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29wZXJhKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb3BlcmEpKSB7IC1vLXRyYW5zaXRpb246IEBwcm9jZXNzX29wZXJhOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX29wZXJhKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfb3BlcmEpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zaXRpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2l0aW9uLWRlbGF5KC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIHZhbHVlUmVnZXg9Lyg/OlxcZCkoPzptc3xzKS9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIHZhbHVlUmVnZXgudGVzdCh2YWx1ZSl8fFwiMFwiPT09dmFsdWV8fCh2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoKz1wYXJzZUZsb2F0KG1hdGNoLDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNpdGlvbi1kZWxheTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNpdGlvbi1kZWxheTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNpdGlvbi1kZWxheTogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnRyYW5zaXRpb24tZHVyYXRpb24oLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjBcIjt2YXIgdmFsdWVSZWdleD0vbXN8cy9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIHZhbHVlUmVnZXgudGVzdCh2YWx1ZSl8fFwiMFwiPT09dmFsdWV8fCh2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoKz1wYXJzZUZsb2F0KG1hdGNoLDEwKT4xMD9cIm1zXCI6XCJzXCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24oQHNpZ25hbCwgQGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiBub3QgKEBib29sZWFuID0gdHJ1ZSksIG5vdCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7fVxuXG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAxLCBAd2Via2l0LCBAd2Via2l0X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDIsIEBtb3osIEBtb3pfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMywgQG9wZXJhLCBAb3BlcmFfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgNCwgQHczYywgQHczY19sb2NhbCk7XG5cbn1cblxuLnRyYW5zaXRpb24tcHJvcGVydHkoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2Vzc193ZWJraXQ6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCJhbGxcIjt2YXIgcHJlZml4ZWRQcm9wZXJ0aWVzPVtcImJhY2tncm91bmQtc2l6ZVwiLFwiYm9yZGVyLXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1c1wiLFwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXNcIixcImJvcmRlci10b3AtbGVmdC1yYWRpdXNcIixcImJvcmRlci10b3AtcmlnaHQtcmFkaXVzXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHByZWZpeD1cIi13ZWJraXQtXCI7cmV0dXJuIHByZWZpeGVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KXstMSE9PXZhbHVlLmluZGV4T2YocHJvcGVydHkpJiYodmFsdWU9dmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKHByb3BlcnR5LFwiZ1wiKSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIHByZWZpeCttYXRjaH0pKX0pLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX21vejogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcImFsbFwiO3ZhciBwcmVmaXhlZFByb3BlcnRpZXM9W1wiYmFja2dyb3VuZC1zaXplXCIsXCJib3gtc2hhZG93XCIsXCJjb2x1bW5cIixcInRyYW5zZm9ybVwiLFwiZmlsdGVyXCJdLHByZWZpeD1cIi1tb3otXCI7cmV0dXJuIHByZWZpeGVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KXstMSE9PXZhbHVlLmluZGV4T2YocHJvcGVydHkpJiYodmFsdWU9dmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKHByb3BlcnR5LFwiZ1wiKSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIHByZWZpeCttYXRjaH0pKX0pLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzX29wZXJhOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiYWxsXCI7dmFyIHByZWZpeGVkUHJvcGVydGllcz1bXCJ0cmFuc2Zvcm1cIl0scHJlZml4PVwiLW8tXCI7cmV0dXJuIHByZWZpeGVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KXstMSE9PXZhbHVlLmluZGV4T2YocHJvcGVydHkpJiYodmFsdWU9dmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKHByb3BlcnR5LFwiZ1wiKSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIHByZWZpeCttYXRjaH0pKX0pLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiYWxsXCI7dmFyIHByZWZpeGVzPVtcIi13ZWJraXQtXCIsXCItbW96LVwiLFwiLW8tXCIsXCJcIl0scHJlZml4ZWRQcm9wZXJ0aWVzPVtcImNvbHVtblwiLFwidHJhbnNmb3JtXCIsXCJmaWx0ZXJcIl0sc3ViU3BsaXQ9dmFsdWUuc3BsaXQoLyg/OiwpKD8hW14oXSpcXCkpL2cpO3JldHVybiBzdWJTcGxpdC5mb3JFYWNoKGZ1bmN0aW9uKGNzcyxpbmRleCl7cHJlZml4ZWRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24ocHJvcGVydHkpey0xIT09Y3NzLmluZGV4T2YocHJvcGVydHkpJiYoc3ViU3BsaXRbaW5kZXhdPVwiXCIscHJlZml4ZXMuZm9yRWFjaChmdW5jdGlvbih2ZW5kb3IsaSl7c3ViU3BsaXRbaW5kZXhdKz1jc3MudHJpbSgpLnJlcGxhY2UobmV3IFJlZ0V4cChwcm9wZXJ0eSxcImdcIiksZnVuY3Rpb24obWF0Y2gpe3JldHVybiB2ZW5kb3IrbWF0Y2h9KSxpPHByZWZpeGVzLmxlbmd0aC0xJiYoc3ViU3BsaXRbaW5kZXhdKz1cIixcIil9KSl9KX0pLHZhbHVlPXN1YlNwbGl0LmpvaW4oXCIsXCIpfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX3dlYmtpdCkpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3Nfd2Via2l0KSkgeyAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IEBwcm9jZXNzX3dlYmtpdDsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2Vzc193ZWJraXQpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfd2Via2l0KSkgYW5kIG5vdCAoaXNlbShAcHJvY2Vzc193ZWJraXQpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2Vzc19tb3opKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX21veikpIHsgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBAcHJvY2Vzc19tb3o7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3NfbW96KSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzX21veikpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3NfbW96KSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX29wZXJhKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX29wZXJhKSkgeyAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBAcHJvY2Vzc19vcGVyYTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzX29wZXJhKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc3VybChAcHJvY2Vzc19vcGVyYSkpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3Nfb3BlcmEpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzX29wZXJhKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2l0aW9uLXByb3BlcnR5OiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbihAc2lnbmFsLCBAYXJndW1lbnRzKTtcbiAgICB9XG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIG5vdCAoQGJvb2xlYW4gPSB0cnVlKSwgbm90IChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHt9XG5cbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDEsIEB3ZWJraXQsIEB3ZWJraXRfbG9jYWwpO1xuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMiwgQG1veiwgQG1vel9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAzLCBAb3BlcmEsIEBvcGVyYV9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCA0LCBAdzNjLCBAdzNjX2xvY2FsKTtcblxufVxuXG4udHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT12YWx1ZXx8XCJlYXNlXCJ9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAcHJvY2VzczsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2xhdGUoLi4uKSB7XG5cbiAgICBAd2Via2l0X2xvY2FsOiB0cnVlO1xuICAgIEBtb3pfbG9jYWw6IHRydWU7XG4gICAgQG9wZXJhX2xvY2FsOiB0cnVlO1xuICAgIEBtc19sb2NhbDogdHJ1ZTtcbiAgICBAdzNjX2xvY2FsOiB0cnVlO1xuXG4gICAgQHByb2Nlc3M6IH5gKGZ1bmN0aW9uKHZhbHVlKXt2YWx1ZT12YWx1ZXx8XCIwXCI7dmFyIG51bVJlZ2V4PS9cXGQvZ2ksbnVtV2l0aG91dFZhbHVlPS8oPzpcXHN8XikoXFwuP1xcZCtcXC4/XFxkKikoPyFbXihdKlxcKXxcXHd8JXxcXC4pL2dpO3JldHVybiBudW1SZWdleC50ZXN0KHZhbHVlKSYmKHZhbHVlPXZhbHVlLnJlcGxhY2UobnVtV2l0aG91dFZhbHVlLGZ1bmN0aW9uKG1hdGNoKXtyZXR1cm4gbWF0Y2grXCJweFwifSkpLHZhbHVlfSkoKGZ1bmN0aW9uKCl7dmFyIGFyZ3M9XCJAe2FyZ3VtZW50c31cIjtyZXR1cm4gYXJncz1hcmdzLnJlcGxhY2UoL15cXFt8XFxdJC9nLFwiXCIpfSkoKSlgO1xuXG4gICAgLnJlc3VsdCAoQGFyZ3VtZW50cywgQHNpZ25hbCwgQGJvb2xlYW4sIEBsb2NhbF9ib29sZWFuKSB3aGVuIChAYm9vbGVhbiA9IHRydWUpIGFuZCAoQGxvY2FsX2Jvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2xhdGUzZCguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAb3BlcmFfbG9jYWw6IHRydWU7XG4gICAgQG1zX2xvY2FsOiB0cnVlO1xuICAgIEB3M2NfbG9jYWw6IHRydWU7XG5cbiAgICBAcHJvY2VzczogfmAoZnVuY3Rpb24odmFsdWUpe3ZhbHVlPXZhbHVlfHxcIjAsIDAsIDBcIjt2YXIgbnVtUmVnZXg9L1xcZC9naSxudW1XaXRob3V0VmFsdWU9Lyg/Olxcc3xeKShcXC4/XFxkK1xcLj9cXGQqKSg/IVteKF0qXFwpfFxcd3wlfFxcLikvZ2k7cmV0dXJuIG51bVJlZ2V4LnRlc3QodmFsdWUpJiYodmFsdWU9dmFsdWUucmVwbGFjZShudW1XaXRob3V0VmFsdWUsZnVuY3Rpb24obWF0Y2gpe3JldHVybiBtYXRjaCtcInB4XCJ9KSksdmFsdWV9KSgoZnVuY3Rpb24oKXt2YXIgYXJncz1cIkB7YXJndW1lbnRzfVwiO3JldHVybiBhcmdzPWFyZ3MucmVwbGFjZSgvXlxcW3xcXF0kL2csXCJcIil9KSgpKWA7XG5cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gKEBib29sZWFuID0gdHJ1ZSkgYW5kIChAbG9jYWxfYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDEpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2xhdGVYKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWChAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2xhdGVZKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWShAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi50cmFuc2xhdGVaKC4uLikge1xuXG4gICAgQHdlYmtpdF9sb2NhbDogdHJ1ZTtcbiAgICBAbW96X2xvY2FsOiB0cnVlO1xuICAgIEBvcGVyYV9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7dmFsdWU9dmFsdWV8fFwiMFwiO3ZhciBudW1SZWdleD0vXFxkL2dpLG51bVdpdGhvdXRWYWx1ZT0vKD86XFxzfF4pKFxcLj9cXGQrXFwuP1xcZCopKD8hW14oXSpcXCl8XFx3fCV8XFwuKS9naTtyZXR1cm4gbnVtUmVnZXgudGVzdCh2YWx1ZSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKG51bVdpdGhvdXRWYWx1ZSxmdW5jdGlvbihtYXRjaCl7cmV0dXJuIG1hdGNoK1wicHhcIn0pKSx2YWx1ZX0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWihAcHJvY2Vzcyk7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDIpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAzKSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDQpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKEBwcm9jZXNzKTsgfVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gNCkgYW5kIG5vdCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkge31cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDUpIGFuZCAoaXNzdHJpbmcoQHByb2Nlc3MpKSBhbmQgbm90IChpc2NvbG9yKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNudW1iZXIoQHByb2Nlc3MpKSBhbmQgbm90IChpc2tleXdvcmQoQHByb2Nlc3MpKSBhbmQgbm90IChpc3VybChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGl4ZWwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BlcmNlbnRhZ2UoQHByb2Nlc3MpKSBhbmQgbm90IChpc2VtKEBwcm9jZXNzKSkgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooQHByb2Nlc3MpOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA1KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBvcGVyYSwgQG9wZXJhX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDUsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cbi51c2VyLXNlbGVjdCguLi4pIHtcblxuICAgIEB3ZWJraXRfbG9jYWw6IHRydWU7XG4gICAgQG1vel9sb2NhbDogdHJ1ZTtcbiAgICBAbXNfbG9jYWw6IHRydWU7XG4gICAgQHczY19sb2NhbDogdHJ1ZTtcblxuICAgIEBwcm9jZXNzOiB+YChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPXZhbHVlfHxcImF1dG9cIn0pKChmdW5jdGlvbigpe3ZhciBhcmdzPVwiQHthcmd1bWVudHN9XCI7cmV0dXJuIGFyZ3M9YXJncy5yZXBsYWNlKC9eXFxbfFxcXSQvZyxcIlwiKX0pKCkpYDtcblxuICAgIC5yZXN1bHQgKEBhcmd1bWVudHMsIEBzaWduYWwsIEBib29sZWFuLCBAbG9jYWxfYm9vbGVhbikgd2hlbiAoQGJvb2xlYW4gPSB0cnVlKSBhbmQgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMSkgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC13ZWJraXQtdXNlci1zZWxlY3Q6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAxKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMikgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tb3otdXNlci1zZWxlY3Q6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSAyKSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uIChAc2lnbmFsLCBAYXJndW1lbnRzKSB3aGVuIChAc2lnbmFsID0gMykgYW5kIChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7IC1tcy11c2VyLXNlbGVjdDogQHByb2Nlc3M7IH1cbiAgICAgICAgLmluY2VwdGlvbiAoQHNpZ25hbCwgQGFyZ3VtZW50cykgd2hlbiAoQHNpZ25hbCA9IDMpIGFuZCBub3QgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHt9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgKGlzc3RyaW5nKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNjb2xvcihAcHJvY2VzcykpIGFuZCBub3QgKGlzbnVtYmVyKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNrZXl3b3JkKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXN1cmwoQHByb2Nlc3MpKSBhbmQgbm90IChpc3BpeGVsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwZXJjZW50YWdlKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNlbShAcHJvY2VzcykpIHsgdXNlci1zZWxlY3Q6IEBwcm9jZXNzOyB9XG4gICAgICAgIC5pbmNlcHRpb24gKEBzaWduYWwsIEBhcmd1bWVudHMpIHdoZW4gKEBzaWduYWwgPSA0KSBhbmQgbm90IChpc3N0cmluZyhAcHJvY2VzcykpIGFuZCBub3QgKGlzY29sb3IoQHByb2Nlc3MpKSBhbmQgbm90IChpc251bWJlcihAcHJvY2VzcykpIGFuZCBub3QgKGlza2V5d29yZChAcHJvY2VzcykpIGFuZCBub3QgKGlzdXJsKEBwcm9jZXNzKSkgYW5kIG5vdCAoaXNwaXhlbChAcHJvY2VzcykpIGFuZCBub3QgKGlzcGVyY2VudGFnZShAcHJvY2VzcykpIGFuZCBub3QgKGlzZW0oQHByb2Nlc3MpKSB7fVxuICAgICAgICAuaW5jZXB0aW9uKEBzaWduYWwsIEBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAucmVzdWx0IChAYXJndW1lbnRzLCBAc2lnbmFsLCBAYm9vbGVhbiwgQGxvY2FsX2Jvb2xlYW4pIHdoZW4gbm90IChAYm9vbGVhbiA9IHRydWUpLCBub3QgKEBsb2NhbF9ib29sZWFuID0gdHJ1ZSkge31cblxuICAgIC5yZXN1bHQoQGFyZ3VtZW50cywgMSwgQHdlYmtpdCwgQHdlYmtpdF9sb2NhbCk7XG4gICAgLnJlc3VsdChAYXJndW1lbnRzLCAyLCBAbW96LCBAbW96X2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDMsIEBtcywgQG1zX2xvY2FsKTtcbiAgICAucmVzdWx0KEBhcmd1bWVudHMsIDQsIEB3M2MsIEB3M2NfbG9jYWwpO1xuXG59XG5cblxuLy8gT3BhY2l0eVxuLy8ub3BhY2l0eShAYXJndW1lbnRzOiAxKSB7XG4vLyAgICBAb3BhY2l0eTogQGFyZ3VtZW50cyAqIDEwMDtcbi8vICAgIG9wYWNpdHk6IEBhcmd1bWVudHM7XG4vL1xuLy8gICAgLmllOCAmIHtcbi8vICAgICAgICBmaWx0ZXI6IGUoJ2FscGhhKG9wYWNpdHk9JykgQG9wYWNpdHkgZSgnKScpO1xuLy8gICAgfVxuLy99XG5cbi8vICoqKlxuXG4vLyBXcmFwXG4ud2hpdGUtc3BhY2UoQHR5cGU6IG5vcm1hbCkgd2hlbiAoIEB0eXBlPW5vd3JhcCApIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG4ud2hpdGUtc3BhY2UoQHR5cGU6IG5vcm1hbCkgd2hlbiAoIEB0eXBlPW5vcm1hbCApIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLy8gKioqXG5cbi8vIEZvbnQgc2l6ZVxuLmZvbnQtc2l6ZShAc2l6ZTogMTIpIHtcbiAgICBAcmVtVmFsdWU6IEBzaXplIC8gMTA7XG4gICAgQHB4VmFsdWU6IEBzaXplO1xuICAgIGZvbnQtc2l6ZTogflwiQHtweFZhbHVlfXB4XCI7XG4gICAgZm9udC1zaXplOiB+XCJAe3JlbVZhbHVlfXJlbVwiO1xufVxuXG4vLyAqKipcblxuXG4vLyBCYWNrZ3JvdW5kIHJnYmFcbi5iYWNrZ3JvdW5kLXJnYmEoQGNvbG91ciwgQGFscGhhKSB7XG4gICAgQGFscGhhQ29sb3VyOiBoc2xhKGh1ZShAY29sb3VyKSwgc2F0dXJhdGlvbihAY29sb3VyKSwgbGlnaHRuZXNzKEBjb2xvdXIpLCBAYWxwaGEpO1xuICAgIEBpZUFscGhhQ29sb3VyOiBhcmdiKEBhbHBoYUNvbG91cik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG91cjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYWxwaGFDb2xvdXI7XG5cbiAgICAuaWU4ICYge1xuICAgICAgICB6b29tOiAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZmlsdGVyOiB+XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj1Ae2llQWxwaGFDb2xvdXJ9LCBlbmRDb2xvcnN0cj1Ae2llQWxwaGFDb2xvdXJ9KVwiO1xuICAgIH1cbn1cblxuXG5cbi8vIExpbmtzXG4udGV4dC1kZWNvcmF0aW9uKEBwYXJhbTogdW5kZXJsaW5lKSB3aGVuICggQHBhcmFtID0gdW5kZXJsaW5lICkge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4udGV4dC1kZWNvcmF0aW9uKEBwYXJhbTogdW5kZXJsaW5lKSB3aGVuICggQHBhcmFtID0gbm9uZSApIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuLnRleHQtZGVjb3JhdGlvbihAcGFyYW06IHVuZGVybGluZSkgd2hlbiAoIEBwYXJhbSA9IGRvdHRlZCApIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi50ZXh0LWRlY29yYXRpb24oQHBhcmFtOiB1bmRlcmxpbmUpIHdoZW4gKCBAcGFyYW0gPSBkYXNoZWQgKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vLyAqKipcblxuLy8gQ2xlYXJGaXhcbi5jbGVhcmZpeCgpIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4ub3ZlcmZpeCgpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udGFibGVmaXgoKSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcuIC4gLiAuIC4gLiAuIC4gLiAuIC4nO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd29yZC1zcGFjaW5nOiA5OWluO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgZm9udC1zaXplOiAwLjA1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjA1ZW07XG4gICAgfVxuXG59XG5cbi8vICoqKlxuXG4vLyBpbmxpbmUgYmxvY2tzXG4uaW5saW5lLWJsb2NrcyAoQHZlcnRpY2FsLWFsaWduOiB0b3AsIEBob3Jpc29udGFsLWFsaWduOiBsZWZ0LCBAbGluZS1oZWlnaHQ6IDEuMikgd2hlbiBub3QgKEBob3Jpc29udGFsLWFsaWduID0ganVzdGlmeSkge1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4zZW07XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogQGhvcmlzb250YWwtYWxpZ247XG5cbiAgICB4Oi1vLXByZWZvY3VzLCAmIHtcbiAgICAgICAgd29yZC1zcGFjaW5nOiAtMC4zZW07XG4gICAgfVxuXG4gICAgPiAuaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IEB2ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cbi5pbmxpbmUtYmxvY2tzIChAdmVydGljYWwtYWxpZ246IHRvcCwgQGhvcmlzb250YWwtYWxpZ246IGxlZnQsIEBsaW5lLWhlaWdodDogMS4yKSB3aGVuIChAaG9yaXNvbnRhbC1hbGlnbiA9IGp1c3RpZnkpIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiBAaG9yaXNvbnRhbC1hbGlnbjtcblxuICAgID4gLml0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IEB2ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5pZTggJiB7XG4gICAgICAgIHRleHQtanVzdGlmeTogbmV3c3BhcGVyO1xuICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGp1c3RpZnk7XG4gICAgfVxufVxuXG4vLyAqKipcblxuXG4iLCJcbi5sb2dvX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogaW5oZXJpdDtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5sb2dvX2hlYWRlciB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2xvZ28uc3ZnXCIpIG5vLXJlcGVhdDtcbiAgICB3aWR0aDogNTdweDtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTRweDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1MDBweCkge1xuICAgICAgICBsZWZ0OiAzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAzNnB4O1xuICAgICAgICB3aWR0aDogNDdweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBsZWZ0OiAxMnB4O1xuICAgICAgICB0b3A6IDdweDtcbiAgICB9XG5cbn1cblxuXG4ubG9nb19mb290ZXIge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9ydC5zdmdcIikgbm8tcmVwZWF0O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNTNweDtcbiAgICBsZWZ0OiAzMnB4O1xuICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB0b3A6IDM1MXB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbn1cbiIsIi5uYXYge1xuXG59XG5cbi5uYXZfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5uYXZfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAuZm9udC1zaXplKDE3KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE1MHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxufVxuXG4ubmF2X19saW5rIHtcblxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmUwMDAwO1xuICAgIH1cblxuXG5cbn1cblxuLm5hdl9oZWFkZXIge1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMzgwcHg7XG4gICAgei1pbmRleDogMTtcblxuXG5cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAgICAgICBjbGlwOiByZWN0KDAsMTAwMGVtLDEwMDBlbSwwKTtcbiAgICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAgMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDlweCAwICNmZmYsIDAgMThweCAwICNmZmY7XG4gICAgICAgICAgICB3aWR0aDogMjlweDtcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICAgICAgcmlnaHQ6IDI5cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm5hdl9vcGVuZWQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgICAgICAgICAgIC5uYXZfX2xpc3RfaGVhZGVyIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgLnRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cblxuLm5hdl9fbGlzdF9oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC50cmFuc2xhdGUoMCwgLTEwMCUpO1xuICAgIH1cbn1cblxuXG4ubmF2X19pdGVtX2hlYWRlciB7XG5cbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBsaW5lLWhlaWdodDogNzNweDtcblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE1MHB4KSB7XG5cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICB9XG5cbn1cblxuLm5hdl9fbGlua19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogIzYzQkQyQjtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICM2M0JEMkI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE1MHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA1cHggMjlweDtcbiAgICB9XG59XG5cbi5uYXZfZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzM3B4O1xuICAgIGxlZnQ6IDMxcHg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgdG9wOiA1M3B4O1xuICAgICAgICByaWdodDogMzFweDtcbiAgICB9XG59XG5cbi5uYXZfX2l0ZW1fZm9vdGVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG5cblxuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5uYXZfX2xpbmtfZm9vdGVyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIH1cbn1cblxuLm5hdl9zaWRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNsaXA6IHJlY3QoMCwxMDAwZW0sMTAwMGVtLDApO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAyMXB4O1xuICAgIHotaW5kZXg6IDk7XG5cblxuICAgICY6aG92ZXIge1xuICAgICAgICAubWFpbi1wYWdlICYge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggcmdiYSgwLDAsMCwuNSk7XG5cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGNsaXA6IHJlY3QoMCwxMDAwZW0sMTAwMGVtLC0xMDAwZW0pO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMCAjMDAwLCAwIDEwcHggMCAjMDAwO1xuICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcblxuICAgICAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IDE5cHg7XG4gICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1hY3RpdmUtdGV4dCk7XG4gICAgICAgICAgICBwYWRkaW5nOiAyM3B4IDUzcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgICAgICAuZm9udC1zaXplKDE1KTtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTcvMTU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgfVxuXG5cblxuICAgIH1cblxuXG5cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE5cHggNTNweDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgLnRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgICB9XG5cbiAgICAmLm5hdl9vcGVuZWQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgLm5hdl9fbGlzdF9zaWRlIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgLnRyYW5zbGF0ZSgwLCAwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICAgICAgLm5hdl9fbGlzdF9zaWRlIHtcbiAgICAgICAgICAgICAgICAudHJhbnNsYXRlKC01MCUsIDAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cbi5uYXZfX2xpc3Rfc2lkZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICYgfiBicixcbiAgICAmIH4gLmgzLFxuICAgICYgfiAubmF2X19saXN0X3NpZGUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKTtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLnRyYW5zbGF0ZSgwLCAtMTAwJSk7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAudHJhbnNsYXRlKC01MCUsIC0xMDAlKTtcbiAgICB9XG59XG5cbi5uYXZfX2l0ZW1fc2lkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMTFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIC5mb250LXNpemUoMTUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcblxuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuXG5cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuLm5hdl9zaWRlIC5uYXZfX2l0ZW1fYWN0aXZlIHtcbiAgICBjb2xvcjogIzViYmQxZTtcbn1cblxuLm5hdl9faXRlbV9hcmNoaXZlIHtcbiAgICBjb2xvcjogIzk5OTtcbn1cblxuLm5hdl9faXRlbV9iaWcge1xuICAgIC5mb250LXNpemUoMjgpO1xuXG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5mb250LXNpemUoMTUpO1xuICAgIH1cbn1cblxuLm5hdl9fbGlua19zaWRlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxOXB4O1xuICAgIH1cbn1cbiIsIi5oZWFkZXIge1xuICAgIG1heC13aWR0aDogMTUwMHB4O1xuICAgIGhlaWdodDogNzNweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogLTFweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwO1xuXG5cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IC0xMDAwZW07XG4gICAgICAgIHJpZ2h0OiAtMTAwMGVtO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBoZWlnaHQ6IDUxcHg7XG4gICAgfVxuXG5cbn0iLCIuY29udGVudCB7XG5cblxuXG59XG5cbi5jb250ZW50X19oZWFkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDI4cHggMzBweCAzOXB4O1xuXG5cblxuICAgIC5oMSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuY2FyZF9fbW92aWUtbW9kZV9tb3ZpZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgcmlnaHQ6IDUwcHg7XG4gICAgICAgIC50cmFuc2xhdGUoMCwgLTUwJSk7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAyMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcmRfX3NvY2lhbF9tb3ZpZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDQyOHB4O1xuICAgICAgICAudHJhbnNsYXRlKDAsIC01MCUpO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAgICAgbGVmdDogMzI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBwYWRkaW5nOiAxOXB4IDE3cHggMjdweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDE3cHggMTlweDtcbiAgICB9XG59XG5cbiIsIi5zb2NpYWwge1xuXG59XG5cblxuLnNvY2lhbF9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnNvY2lhbF9faXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5zb2NpYWxfX2l0ZW1faGVhZGVyIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxufVxuXG4uc29jaWFsX19saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogbm8tcmVwZWF0ICA1MCUgNTAlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG59XG5cbi5zb2NpYWxfX2xpbmtfaGVhZGVyIHtcbiAgICAvL2JhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy93aGl0ZV9zb2NpYWxfaWNvLnBuZ1wiKTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuXG59XG5cbi5zb2NpYWxfX2xpbmtfZmIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2ZiLnN2Z1wiKTtcbiAgICB9XG59XG5cbi5zb2NpYWxfX2xpbmtfdHcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3Quc3ZnXCIpO1xuICAgIH1cbn1cblxuLnNvY2lhbF9fbGlua192ayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggYXV0bztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3ZrLnN2Z1wiKTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjVweCBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvY2lhbF9fbGlua195byB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3kuc3ZnXCIpO1xuICAgIH1cbn1cblxuLnNvY2lhbF9fbGlua19vayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIycHggYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL29rLnN2Z1wiKTtcbiAgICBcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE3cHggYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvY2lhbF9fbGlua190aWt0b2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMnB4IGF1dG87XG4gICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy90aWt0b2suc3ZnXCIpO1xuICAgICAgIFxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTdweCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc29jaWFsX19saW5rX3JzcyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcnNzLnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IGF1dG87XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvY2lhbF9fbGlua19ydXR1YmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0MHB4IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9ydXR1YmUuc3ZnXCIpO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMnB4IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zb2NpYWxfX2xpbmtfdGVsZWdyYW0ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0MHB4IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy90ZWxlZ3JhbS5zdmdcIik7XG4gICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMnB4IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zb2NpYWxfaGVhZGVyIHtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDExNXB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAgICAgICByaWdodDogMTkwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAvL2Rpc3BsYXk6IG5vbmU7XG4gICAgICBcbiAgICAgIHJpZ2h0OiAxNDVweDtcbiAgICB9XG59XG5cblxuXG5cblxuXG5cbi5zb2NpYWxfZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzMXB4O1xuICAgIHJpZ2h0OiAzNXB4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIHRvcDogMjY4cHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG5cbi5zb2NpYWxfX2l0ZW1fZm9vdGVyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgbWFyZ2luOiAwIDlweDtcbiAgICB9XG59XG5cblxuLnNvY2lhbF9fbGlua19mb290ZXIge1xuICAgIC8vYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2JsYWNrX3NvY2lhbF9pY28ucG5nXCIpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAvL2JhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9ibGFja19zb2NpYWxfaWNvX2JpZy5wbmdcIik7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLnNvY2lhbF9fbGlzdF9jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zb2NpYWxfX2l0ZW1fY29udGVudCB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbjogMCA4cHg7XG59XG5cbi5jYXJkX19zb2NpYWwtaXRlbV9tb3ZpZSB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuLmNhcmRfX3NvY2lhbC1saW5rX21vdmllLFxuLnNvY2lhbF9fbGlua19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvY29sb3Jfc29jaWFsX2ljby5wbmdcIik7XG59XG5cbi5zb2NpYWxfX2xpbmtfdHdfY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDtcbn1cblxuLnNvY2lhbF9fbGlua19nZ19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4O1xufVxuXG4uc29jaWFsX19saW5rX3lvX2NvbnRlbnQge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEyMHB4O1xufVxuXG4uY2FyZF9fc29jaWFsLWxpbmtfbW92aWUge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMzBweCBhdXRvO1xufVxuXG4uY2FyZF9fc29jaWFsLWxpbmtfdHdfbW92aWUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTMwcHg7XG59XG5cbi5jYXJkX19zb2NpYWwtbGlua19nZ19tb3ZpZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjBweDtcbn1cbi5jYXJkX19zb2NpYWwtbGlua195b19tb3ZpZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtOTBweDtcbn1cblxuXG4uY2FyZF9fc29jaWFsX21vdmllIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAyM3B4IDA7XG5cbiAgICAvL0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KXtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCl7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4uY2FyZF9fc29jaWFsLWl0ZW1fbW92aWUge1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4udGVzdDRfc3R5bGUge1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4iLCIucHJvbW8ge1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MDBweDtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBoZWlnaHQ6IDI2MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgfVxufVxuXG4ucHJvbW9fX2xpbmsge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IC43O1xuICAgIH1cbn1cblxuLnByb21vX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ucHJvbW9fX2l0ZW0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAmOmhvdmVyIHtcblxuXG4gICAgICAgIC5wcm9tb19fdGl0bGUge1xuICAgICAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICAgIH1cbiAgICB9XG59XG4ucHJvbW9fX2l0ZW1fbmV3LW5leHQsXG4ucHJvbW9fX2l0ZW1fbmV3LXByZXYsXG4ucHJvbW9fX2l0ZW1fYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLnByb21vX19pdGVtX25ldy1uZXh0LFxuLnByb21vX19pdGVtX25ldy1wcmV2IHtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4ucHJvbW9fX2ltZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3BhY2l0eTogLjU7XG5cbn1cblxuLnByb21vX19iYWNrZ3JvdW5kLWxpbmsge1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnByb21vX19tZWRpYSB7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTEwMDBlbTtcbiAgICByaWdodDogLTEwMDBlbTtcbiAgICBib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG5cbn1cblxuLnByb21vX19pdGVtX29sZC1wcmV2IHtcbiAgICAucHJvbW9fX21lZGlhIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG9sZFByZXZNZWRpYSAuNXMgZWFzZSBib3RoO1xuICAgICAgICBhbmltYXRpb246IG9sZFByZXZNZWRpYSAuNXMgZWFzZSBib3RoO1xuICAgIH1cblxuXG59XG5cbi5wcm9tb19faXRlbV9uZXctcHJldiB7XG4gICAgLnByb21vX19tZWRpYSB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBuZXdQcmV2TWVkaWEgLjVzIGVhc2UgYm90aDtcbiAgICAgICAgYW5pbWF0aW9uOiBuZXdQcmV2TWVkaWEgLjVzIGVhc2UgYm90aDtcbiAgICB9XG5cbiAgICAucHJvbW9fX2NvbnRleHQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5ld1ByZXZDb250ZXh0IC41cyBlYXNlIGJvdGggLjNzO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBuZXdQcmV2Q29udGV4dCAuNXMgZWFzZSBib3RoICAuM3M7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5ld1ByZXZDb250ZXh0MiAuNXMgZWFzZSBib3RoIC4zcztcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbmV3UHJldkNvbnRleHQyIC41cyBlYXNlIGJvdGggIC4zcztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIG9sZFByZXZNZWRpYSB7XG4gICAgMCUgICB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgb2xkUHJldk1lZGlhIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbmV3UHJldk1lZGlhIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIG5ld1ByZXZNZWRpYSB7XG4gICAgMCUgICB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cblxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbmV3UHJldkNvbnRleHQge1xuICAgIDAlICAge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIG5ld1ByZXZNQ29udGV4dCB7XG4gICAgMCUgICB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbmV3UHJldkNvbnRleHQyIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBuZXdQcmV2TUNvbnRleHQyIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG59XG5cblxuXG5cblxuLnByb21vX19pdGVtX29sZC1uZXh0IHtcbiAgICAucHJvbW9fX21lZGlhIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG9sZE5leHRNZWRpYSAuNXMgZWFzZSBib3RoO1xuICAgICAgICBhbmltYXRpb246IG9sZE5leHRNZWRpYSAuNXMgZWFzZSBib3RoO1xuICAgIH1cbn1cblxuLnByb21vX19pdGVtX25ldy1uZXh0IHtcbiAgICAucHJvbW9fX21lZGlhIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5ld05leHRNZWRpYSAuNXMgZWFzZSBib3RoO1xuICAgICAgICBhbmltYXRpb246IG5ld05leHRNZWRpYSAuNXMgZWFzZSBib3RoO1xuICAgIH1cblxuICAgIC5wcm9tb19fY29udGV4dCB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbmV3TmV4dENvbnRleHQgLjVzIGVhc2UgYm90aCAuM3M7XG4gICAgICAgICAgICBhbmltYXRpb246IG5ld05leHRDb250ZXh0IC41cyBlYXNlIGJvdGggLjNzO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbmV3TmV4dENvbnRleHQyIC41cyBlYXNlIGJvdGggLjNzO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBuZXdOZXh0Q29udGV4dDIgLjVzIGVhc2UgYm90aCAuM3M7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBvbGROZXh0TWVkaWEge1xuICAgIDAlICAge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgb2xkTmV4dE1lZGlhIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBuZXdOZXh0TWVkaWEge1xuICAgIDAlICAge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIG5ld05leHRNZWRpYSB7XG4gICAgMCUgICB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbmV3TmV4dENvbnRleHQge1xuICAgIDAlICAge1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgfVxufVxuQGtleWZyYW1lcyBuZXdOZXh0Q29udGV4dCB7XG4gICAgMCUgICB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBuZXdOZXh0Q29udGV4dDIge1xuICAgIDAlICAge1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgfVxufVxuQGtleWZyYW1lcyBuZXdOZXh0Q29udGV4dDIge1xuICAgIDAlICAge1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgfVxufVxuXG4ucHJvbW9fX2NvbnRleHQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDM7XG4gICAgd2lkdGg6IDY2MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLnRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHdpZHRoOiA1NjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICB3aWR0aDogNDUycHg7XG5cblxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgfVxufVxuXG4ucHJvbW9fX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzOXB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogNi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiA2Ni83MDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2U7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICAgIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgLmZvbnQtc2l6ZSg1MCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NS81MDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuZm9udC1zaXplKDMwKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICAuZm9udC1zaXplKDIwKTtcbiAgICB9XG5cblxufVxuXG4ucHJvbW9fX2hvbm9yLFxuLnByb21vX19wcmVtaWVyIHtcbiAgICBtYXJnaW46IDE1cHggMCAxMHB4O1xuICAgIGNvbG9yOiAjNGZjZDAwO1xuICAgIC5mb250LXNpemUoMTcpO1xuICAgIGxpbmUtaGVpZ2h0OiA2Ni83MDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSgyNSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMC8yNTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuZm9udC1zaXplKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI1LzIwO1xuICAgIH1cblxuXG59XG5cbi5wcm9tb19faG9ub3Ige1xuICAgIGNvbG9yOiAjZmY0NTAwO1xufVxuXG4ucHJvbW9fX2NhdGVnb3J5IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgLmZvbnQtc2l6ZSgxNyk7XG4gICAgbGluZS1oZWlnaHQ6IDIyLzE3O1xuXG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICAuZm9udC1zaXplKDE1KTtcbiAgICB9XG5cblxuICAgID4gLnByb21vX19saW5rIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxufVxuXG4ucHJvbW9fX3N1bW1hcnkge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC5mb250LXNpemUoMTcpO1xuICAgIGxpbmUtaGVpZ2h0OiAyMi8xNztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG59XG5cbi5wcm9tb19fbmV4dCxcbi5wcm9tb19fcHJldiB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3Byb21vX2Fycm93c192ZXJ0aWNhbC5wbmdcIikgbm8tcmVwZWF0O1xuICAgIHdpZHRoOiA0M3B4O1xuICAgIGhlaWdodDogNDNweDtcbiAgICBtYXJnaW4tdG9wOiAtOTZweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDI5cHg7XG4gICAgei1pbmRleDogMjtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG5cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9wcm9tb19hcnJvd3NfaG9yaXpvbnRhbC5wbmdcIik7XG4gICAgICAgIHdpZHRoOiAzMXB4O1xuICAgICAgICBoZWlnaHQ6IDMxcHg7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAxOXB4O1xuICAgICAgICBsZWZ0OiAyNHB4O1xuICAgIH1cbn1cblxuLnByb21vX19wcmV2IHtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLnRyYW5zbGF0ZSgwLCAtMjAlKTtcbiAgICB9XG59XG5cbi5wcm9tb19fbmV4dCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDNweDtcbiAgICBtYXJnaW4tdG9wOiA1M3B4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC50cmFuc2xhdGUoMCwgMjAlKTtcbiAgICB9XG5cblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzFweDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDI0cHg7XG4gICAgfVxufVxuXG4ucHJvbW9fX2NvdW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMzFweDtcbiAgICB6LWluZGV4OiAyO1xuICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTkwZGVnKSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgLmZvbnQtc2l6ZSgyNSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgICAgIC50cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cblxufVxuIiwiLm9uLXRoZS1haXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE5cHg7XG4gICAgbGVmdDogNjlweDtcbiAgICByaWdodDogOTYwcHg7XG4gICAgei1pbmRleDogMjtcbiAgICAvLyBwYWRkaW5nLXJpZ2h0OiA3MHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDcwcHg7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1MDBweCkge1xuICAgICAgICBsZWZ0OiA5OXB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm9uLXRoZS1haXJfX2NhcHRpb24ge1xuICAgIGNvbG9yOiAjZDUyZjEwO1xuICAgIC5mb250LXNpemUoMTMpO1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3LzEzO1xufVxuXG4ub24tdGhlLWFpcl9fdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNvbG9yOiAjYTRhNGE0O1xuICAgIC5mb250LXNpemUoMTMpO1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3LzEzO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5vbi10aGUtYWlyX19saW5rIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIuc2VhcmNoX2hlYWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNzJweDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgLy8udHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE1MHB4KSB7XG4gICAgICAgIHJpZ2h0OiA4NXB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHRvcDogNTBweDtcbiAgICB9XG59XG5cbi5zZWFyY2hfX2J0bl9oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9zZWFyY2gtd2hpdGUuc3ZnXCIpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIGhlaWdodDogNzJweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC03MnB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRvcDogLTUwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgIHJpZ2h0OiAtMjBweDtcbiAgICB9XG59XG5cbi5zZWFyY2hfX2NvbnRleHQtd3JhcHBlcl9oZWFkZXIge1xuICAgIGNsaXA6IHJlY3QoMCwxMDAwZW0sMTAwMGVtLC0xMDAwZW0pO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbn1cblxuLnNlYXJjaF9fY29udGV4dF9oZWFkZXIge1xuICAgIHBhZGRpbmc6IDM4cHggMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLnRyYW5zbGF0ZSgwLCAtMTAwJSk7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuXG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAtMTAwMGVtO1xuICAgICAgICByaWdodDogLTEwMDBlbTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLC4zKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTUwcHgpIHtcbiAgICAgICAgcGFkZGluZzogMzhweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTUwcHgpIHtcbiAgICAgICAgcmlnaHQ6IC03MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgfVxuXG59XG5cbi5zZWFyY2hfYWN0aXZlIHtcbiAgICAuc2VhcmNoX19jb250ZXh0X2hlYWRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIC50cmFuc2xhdGUoMCwgMCk7XG4gICAgfVxuICAgIC5zZWFyY2hfX2Nsb3NlLWJ0bl9oZWFkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuLnNlYXJjaF9fZmllbGQge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QzZDNkMztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAyN3B4IDQwcHggMjdweCAwO1xuXG5cbiAgICAuZm9udC1zaXplKDMwKTtcblxuXG5cbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjYjViNWI1O1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjYjViNWI1O1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjYjViNWI1O1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogI2I1YjViNTtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO1xuICAgICAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogLjM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAuMztcbiAgICAgICAgfVxuXG4gICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbi5zZWFyY2hfX3N1Ym1pdC1idG5fY29udGVudCxcbi5zZWFyY2hfX3N1Ym1pdC1idG5faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvc2VhcmNoLWJsYWNrLnN2Z1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBvcGFjaXR5OiAuMztcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTU1MHB4KSB7XG4gICAgICAgIHJpZ2h0OiAzOHB4O1xuICAgIH1cbn1cblxuLnNlYXJjaF9fY2xvc2UtYnRuX2hlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2YwMCB1cmwoXCIuLi9pbWcvY2xvc2UtYnRuLnBuZ1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgICB3aWR0aDogNTlweDtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTcycHg7XG4gICAgcmlnaHQ6IC0xMHB4O1xuICAgIHotaW5kZXg6IDM7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNDAlO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAgICAgICByaWdodDogLTE4cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICB0b3A6IC01MHB4O1xuICAgIH1cblxuXG59XG5cbi5zZWFyY2gtYm94IHtcblxuICAgIHBhZGRpbmc6IDE1cHggMTAycHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDUxcHggMDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDIxcHggMDtcbiAgICB9XG59XG5cbi5zZWFyY2hfY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDFweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZWFyY2hfX3N1Ym1pdC1idG5fY29udGVudCB7XG4gICAgcmlnaHQ6IDA7XG59XG4iLCIuZmF2b3JpdGVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiA2MHB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xuICAgICAgICByaWdodDogMTM2cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgdG9wOiA3cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0SDogNDc5cHgpIHtcbiAgICAgIHJpZ2h0OiAxMDBweDtcbiAgICB9XG59XG5cbi5mYXZvcml0ZXNfX2J0biB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Zhdm9yaXRlLXdoaXRlLnN2Z1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzVweDtcbiAgICBoZWlnaHQ6IDM1cHg7XG59XG5cbi5mYXZvcml0ZXNfX2NvdW50ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZTAwMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAtM3B4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC5mb250LXNpemUoMTMpO1xuICAgIGxpbmUtaGVpZ2h0OiAyMC8xMztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbn1cbiIsIi5mb290ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDIzMnB4O1xuICAgIC8qaGVpZ2h0OiAyNjJweDsqL1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLypwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7Ki9cbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG5cbiAgICAub3JkZXIoMCk7XG5cbiAgICAuZmxleCgwIDEgYXV0byk7XG5cbiAgICAuYWxpZ24tc2VsZihhdXRvKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAvKmhlaWdodDogNjMwcHg7Ki9cbiAgICAgICAgcGFkZGluZy10b3A6IDYzMHB4O1xuICAgIH1cblxufVxuXG4uZm9vdGVyIHsgICAgICBcblxuICAgICAgICAmX19vcmdhbml6YXRpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAzNXB4O1xuICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMTJweCAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzYzNjM2M7XG5cbiAgICAgICAgICAgIC8vQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA4MHB4KSB7XG4gICAgICAgICAgICAvLyAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgLy99XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy9AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgICAgIC8vICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICAgICAgICAvL31cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvL0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgICAgICAgICAvLyAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAvL31cblxuICAgICAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkRJTiBQcm9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMjVweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgcm90YXRlKDEzNWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjMycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtdGl0bGUuaXMtb3BlbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC02cHggLDhweCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgICAgICZfX3dyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIyNXB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDE1MTQtOC5wbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTE0cHgpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMjVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MzZweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3MvaW1hZ2VzL3Byb2hpYml0ZWQtb3JnYW5pemF0aW9ucy90eHQxNDM2LTgucG5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMzlweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNDBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3MvaW1hZ2VzL3Byb2hpYml0ZWQtb3JnYW5pemF0aW9ucy90eHQxMjQwLTgucG5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyODJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3MvaW1hZ2VzL3Byb2hpYml0ZWQtb3JnYW5pemF0aW9ucy90eHQxMTkwLTgucG5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyODJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwOTBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNjJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3MvaW1hZ2VzL3Byb2hpYml0ZWQtb3JnYW5pemF0aW9ucy90eHQxMDI0LTgucG5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMjNweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk0MHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjc1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNTVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9zL2ltYWdlcy9wcm9oaWJpdGVkLW9yZ2FuaXphdGlvbnMvdHh0NzY4LTgucG5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MDdweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDczMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDM3NXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjYwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzQ1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMyNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9zL2ltYWdlcy9wcm9oaWJpdGVkLW9yZ2FuaXphdGlvbnMvdHh0NTY4LTgucG5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MjVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUyMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ3NXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MzZweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MDVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcy9pbWFnZXMvcHJvaGliaXRlZC1vcmdhbml6YXRpb25zL3R4dDMyMC04LnBuZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTE5NXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTA5NXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzcwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzUwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogOTM1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMzVweCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA4OTVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDc5NXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWltYWdlLmlzLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG59XG5cbiIsIi5jb3B5cmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE1MHB4O1xuICAgIGxlZnQ6IDczcHg7XG4gICAgLmZvbnQtc2l6ZSgxNCk7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICB3aWR0aDogMzEycHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgdG9wOiAzOTdweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59IiwiLmNhcmQtbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICZfX292ZXJsYXktbGluayB7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX21lZGlhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9faXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uY2FyZF9fbGluayxcbi5jYXJkLWxpc3RfX2xpbmsge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjNjNiZDI4O1xuICAgICAgICAudHJhbnNpdGlvbihjb2xvciAuM3MgZWFzZSk7XG4gICAgfVxufVxuXG4uY2FyZC1saXN0X3BvcHVsYXIge1xuICAgIGZvbnQtc2l6ZTogMDtcbn1cblxuLmNhcmQtbGlzdF9fY29udGVudCxcbi5jYXJkLWxpc3RfX2RhdGUsXG4uY2FyZC1saXN0X19jYXRlZ29yeSxcbi5jYXJkLWxpc3RfX2hlYWRpbmcge1xuICAgIHotaW5kZXg6IDM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jYXJkLWxpc3RfX2xpbmsge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uY2FyZC1saXN0X19pdGVtX3BvcHVsYXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzMuMzMzMyU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAxOC43NSU7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgLmNhcmQtbGlzdF9fZmF2b3JpdGVfbW92aWUsXG4gICAgICAgICAgICAuY2FyZC1saXN0X19mYXZvcml0ZV9wb3B1bGFyLFxuICAgICAgICAgICAgLmNhcmQtbGlzdF9fY29udGVudF9wb3B1bGFyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jYXJkLWxpc3RfX2NvbnRlbnRfcG9wdWxhciB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDc0cHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2FyZC1saXN0X19oZWFkaW5nX3BvcHVsYXIge1xuICAgICAgICAgICAgICAgIHRvcDogMzIlO1xuICAgICAgICAgICAgICAgIC5mb250LXNpemUoMTgpO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNhcmQtbGlzdF9faG9ub3JfcG9wdWxhcixcbiAgICAgICAgICAgIC5jYXJkLWxpc3RfX3ByZW1pZXJfcG9wdWxhciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICAgICAgICAgIC5mb250LXNpemUoMTgpO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jYXJkLWxpc3RfX2ltZ19wb3B1bGFyIHtcbiAgICAgICAgICAgICAgICAuc2NhbGUoMS4xKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNhcmQtbGlzdF9fZGF0ZV9wb3B1bGFyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjU4KjEwMC8zNTIvMiU7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9fY29udGVudF9wb3B1bGFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG5cbn1cblxuLmNhcmQtbGlzdF9fbWVkaWFfcG9wdWxhciB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDI1OCoxMDAvMzUyJTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9faW1nX3BvcHVsYXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qbWluLXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7Ki9cbiAgICBtYXJnaW46IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIG9wYWNpdHk6IC40O1xuXG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgbGVmdDogLTE1JTtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgLypoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiB1bnNldDsqL1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG59XG5cbi5jYXJkLWxpc3RfX2l0ZW1fZ3JvdXBfcG9wdWxhciB7XG5cbiAgICAuY2FyZC1saXN0X19pbWdfcG9wdWxhciB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogNTAlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uY2FyZC1saXN0X19jYXRlZ29yeV9wb3B1bGFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4LjUlO1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5mb250LXNpemUoMjApO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAuZm9udC1zaXplKDE1KTtcblxuICAgIH1cblxufVxuXG4uY2FyZC1saXN0X19oZWFkaW5nX3BvcHVsYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUxJTtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC5mb250LXNpemUoMjYpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgLnRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmc6IDNweCAxNXB4IDlweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAuZm9udC1zaXplKDIwKTtcbiAgICAgICAgLnRyYW5zbGF0ZSgwLCAwKTtcbiAgICB9XG5cbn1cblxuLmNhcmQtbGlzdF9fZGF0ZV9wb3B1bGFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA4LjUlO1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIC5mb250LXNpemUoMTIpO1xuICAgIH1cblxufVxuXG4uY2FyZC1saXN0X19mYXZvcml0ZV9tb3ZpZSxcbi5jYXJkLWxpc3RfX2Zhdm9yaXRlX3Byb2dyYW1zLFxuLmNhcmQtbGlzdF9fZmF2b3JpdGVfcG9wdWxhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTBweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuICAgIHotaW5kZXg6IDQ7XG5cbiAgICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlICYsXG4gICAgLmNhcmQtbGlzdF9faXRlbV9mYXZvcml0ZSAmIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICfQlNC+0LHQsNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtSc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCAwIDAgNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAuZm9udC1zaXplKDE1KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNSAvIDE1O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICAgICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlICYge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfQo9C00LDQu9C40YLRjCDQuNC3INC40LfQsdGA0LDQvdC90L7Qs9C+JztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmYzYzAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2ZmM2MwMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuXG4uY2FyZC1saXN0X19zdW1tYXJ5X3BvcHVsYXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogMTMlO1xuICAgIGxlZnQ6IDI4cHg7XG4gICAgcmlnaHQ6IDI4cHg7XG4gICAgLmZvbnQtc2l6ZSgxNCk7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDIxLzE1O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgLmJhY2tncm91bmQtaW1hZ2UofidsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDApLCByZ2JhKDI1NSwyNTUsMjU1LDEpKScpO1xuICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi5jYXJkLWxpc3RfX2hvbm9yX3BvcHVsYXIsXG4uY2FyZC1saXN0X19wcmVtaWVyX3BvcHVsYXIge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBjb2xvcjogIzRmY2QwMDtcbiAgICAuZm9udC1zaXplKDE3KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSgxOCk7XG4gICAgfVxufVxuXG4uY2FyZC1saXN0X19pdGVtX3Byb2dyYW1zIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgICAgICAgICAuY2FyZC1saXN0X19mYXZvcml0ZV9tb3ZpZSxcbiAgICAgICAgICAgIC5jYXJkLWxpc3RfX2Zhdm9yaXRlX3Byb2dyYW1zIHtcblxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuOGVtO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9fbWVkaWFfcHJvZ3JhbXMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzNyU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8mOmJlZm9yZSB7XG4gICAgLy8gICAgY29udGVudDogJyc7XG4gICAgLy8gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAvLyAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICAgdG9wOiAwO1xuICAgIC8vICAgIGJvdHRvbTogLTEwMDBlbTtcbiAgICAvLyAgICBsZWZ0OiAwO1xuICAgIC8vICAgIHJpZ2h0OiAwO1xuICAgIC8vICAgIHotaW5kZXg6IC0xO1xuICAgIC8vfVxuXG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG59XG5cbi5jYXJkLWxpc3RfX2ltYWdlX3Byb2dyYW1zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxufVxuXG4uY2FyZC1saXN0X19pbWdfcHJvZ3JhbXMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xufVxuXG4uY2FyZC1saXN0X19jb250ZXh0X3Byb2dyYW1zIHtcbiAgICBwYWRkaW5nOiAxLjklIDIuNSU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDMlIDMlIDUlO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9fY2F0ZWdvcnlfcHJvZ3JhbXMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuZm9udC1zaXplKDE1KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG59XG5cbi5jYXJkLWxpc3RfX2hlYWRpbmdfcHJvZ3JhbXMge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgLmZvbnQtc2l6ZSgzNCk7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzMzBweCkge1xuICAgICAgICAuZm9udC1zaXplKDI3KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIC5mb250LXNpemUoMjMpO1xuICAgIH1cblxuXG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgICAgICAuZm9udC1zaXplKDIwKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAuZm9udC1zaXplKDE4KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5jYXJkLWxpc3RfX2RhdGVfcHJvZ3JhbXMge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIGNvbG9yOiByZ2IoMTU4LCAxNTgsIDE1OCk7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG59XG5cbi5jYXJkLWxpc3RfX3N1bW1hcnlfcHJvZ3JhbXMge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgbGluZS1oZWlnaHQ6IDIxLzE1O1xuXG4gICAgcDpsYXN0LWNoaWxkLFxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX21vdmllLFxuLmNhcmQtbGlzdF9fZmF2b3JpdGUtYnRuX3BvcHVsYXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JlYmViZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Zhdm9yaXRlLWJsYWNrLnN2Z1wiKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMnB4IDIzcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBvcGFjaXR5OiAuMztcbiAgICAgICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcbiAgICB9XG5cbiAgICAqOmhvdmVyID4gJiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzMzMztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYXJkLWxpc3RfX2l0ZW1fZmF2b3JpdGUgJiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjNjMDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmM2MwMDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZmF2b3JpdGUuc3ZnXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxOXB4IDE5cHg7XG5cbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Zhdm9yaXRlLWRlbC13aGl0ZS5zdmdcIikgbm8tcmVwZWF0IDUwJSA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIycHggMjNweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgICAgIH1cblxuICAgICAgICAqOmhvdmVyID4gJiB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLmNhcmRfbW92aWUge1xuICAuanctY29udHJvbGJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7IFxuICB9XG59XG5cbi5jYXJkX19uYXZpX21vdmllIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U5ZTllOTtcbiAgICBwYWRkaW5nOiAwIDE0NHB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmc6IDAgNTVweDtcbiAgICB9XG5cbiAgICAmLXdpdGhvdXQtc2xpZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgICAgICAgICAmLmZpeGVkIHtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICB0b3A6IDcycHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5O1xuXG4gICAgICAgICAgICAgICAgJiArICoge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2N3B4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2FyZF9fbmF2aV9hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jYXJkX19uYXZpLWNvbnRleHRfbW92aWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2FyZF9fbmF2aS1uZXh0X21vdmllLFxuLmNhcmRfX25hdmktcHJldl9tb3ZpZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIuLi9pbWcvYXJyb3ctbGVmdC5wbmdcIikgbm8tcmVwZWF0IDUwJSA1MCU7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2U5ZTllOTtcbiAgICB3aWR0aDogMTQ0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgd2lkdGg6IDU1cHg7XG4gICAgfVxufVxuXG4uY2FyZF9fbmF2aS1uZXh0X21vdmllIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYXJyb3ctcmlnaHQucG5nXCIpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlOWU5ZTk7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbn1cblxuLmNhcmRfX25hdmktbGlzdF9tb3ZpZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY2FyZF9fbmF2aV9tb3ZpZV9hbmltYXRlIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xufVxuXG4uY2FyZF9fbmF2aS1pdGVtX21vdmllIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlOWU5ZTk7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMjAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC5mb250LXNpemUoMTYpO1xuICAgIGNvbG9yOiAjNzE3MTcxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogNjZweDtcblxuICAgIC5jYXJkX19uYXZpX21vdmllLXdpdGhvdXQtc2xpZGVyICYge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIH1cbn1cblxuLmNhcmRfX25hdmktbGlua19tb3ZpZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiA2NnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuICAgIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXG5cbiAgICAuY2FyZF9fbmF2aV9tb3ZpZS13aXRob3V0LXNsaWRlciAmIHtcbiAgICAgICAgcGFkZGluZzogMTRweCAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbn1cblxuc3Bhbi5jYXJkX19uYXZpLWxpbmtfbW92aWUge1xuICAgIG9wYWNpdHk6IC41O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLmNhcmRfX25hdmktbGluay10ZXh0X21vdmllIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jYXJkX19uYXZpLWxpbmstdGV4dC1kYXRlX21vdmllIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5mb250LXNpemUoMTIpO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIC5mb250LXNpemUoMTApO1xuICAgIH1cbn1cblxuLmNhcmRfX25hdmktbGluay10ZXh0LXNob3J0X21vdmllIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jYXJkX19uYXZpLWxpbmtfYWN0aXZlX21vdmllIHtcbiAgICBjb2xvcjogIzYzYmQyYjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL3RyaWFuZ2xlLnBuZycpIG5vLXJlcGVhdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcblxuICAgICAgICAuY2FyZF9fbmF2aV9tb3ZpZS13aXRob3V0LXNsaWRlciAmIHtcblxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogIzYzYmQyYjtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi5jYXJkX19tZWRpYV9tb3ZpZSB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucGFnZV9tb3ZpZS1tb2RlICYge1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgfVxufVxuXG4uY2FyZF9fZG91YmxlLXRhcC1hcmVhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMzJweDtcbiAgICB3aWR0aDogMzAlO1xuICAgIFxuICAgICYtLWxlZnQge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgICYtLXJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4uY2FyZF9fbWVkaWEtaW1nX21vdmllIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi5jYXJkX19tZWRpYS1wbGF5LWJ0bl9tb3ZpZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3BsYXkucG5nXCIpIG5vLXJlcGVhdDtcbiAgICB3aWR0aDogOTZweDtcbiAgICBoZWlnaHQ6IDc3cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmNhcmRfX3BhbmVsX21vdmllIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblxuICAgIHBhZGRpbmc6IDAgMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgIC5oMSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDAgNDBweCAwIDA7XG4gICAgICAgIC5mb250LXNpemUoNDApO1xuICAgICAgICBsaW5lLWhlaWdodDogNzJweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4uY2FyZF9fbGlrZXNfbW92aWUge1xuXG59XG5cbi5jYXJkX19oZWFkaW5nX21vdmllIHtcblxuICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XG4gICAgLmZvbnQtc2l6ZSg1MCk7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAuZm9udC1zaXplKDI1KTtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNXB4O1xuICAgIH1cbn1cblxuLmNhcmRfX2NvbnRleHRfbW92aWUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIHBhZGRpbmc6IDMwcHg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICB9XG59XG5cbi5jYXJkX19zdW1tYXJ5X21vdmllIHtcbiAgICAuZm9udC1zaXplKDE4KTtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuODkpO1xuICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSgxNik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNC8xNjtcbiAgICB9XG59XG5cbi5jYXJkX19jYXRlZ29yeV9tb3ZpZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIxJTtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgLmZvbnQtc2l6ZSgxNyk7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDIyLzE3O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxNXB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XG4gICAgfVxufVxuXG4uY2FyZF9fY29udGV4dC1pbl9tb3ZpZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwIDYwcHggMCAwO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG59XG5cbi5jYXJkX19pbmZvX21vdmllIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDIxJTtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxufVxuXG4uY2FyZF9fY291bnQtY29tbWVudHNfbW92aWUge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9jb21tZW50cy5zdmdcIikgbm8tcmVwZWF0IDAgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDIxcHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSgxMyk7XG4gICAgbGluZS1oZWlnaHQ6IDE2LzEzO1xufVxuXG4uY2FyZF9fY291bnQtdmlld3NfbW92aWUge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy92aWV3cy5zdmdcIikgbm8tcmVwZWF0IDAgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTdweCA5cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMjFweDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDEzKTtcbiAgICBsaW5lLWhlaWdodDogMTYvMTM7XG59XG5cbi5jYXJkX19jb3VudC1kYXRlX21vdmllIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSgxMyk7XG4gICAgbGluZS1oZWlnaHQ6IDE2LzEzO1xufVxuXG4uY2FyZF9fdGFnc19tb3ZpZSB7XG4gICAgcGFkZGluZzogNTBweCAwIDA7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMDtcblxuICAgIH1cblxufVxuXG4uY2FyZF9fdGFncy1saW5rX21vdmllIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgIH1cbn1cblxuLmNhcmRfX3RhZ3MtaGVhZGluZ19tb3ZpZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIC5mb250LXNpemUoMTcpO1xuICAgIGxpbmUtaGVpZ2h0OiAyMi8xNztcbn1cblxuLmNhcmRfX3RhZ3MtaXRlbV9tb3ZpZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiA5cHg7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgIC5mb250LXNpemUoMTcpO1xuICAgIGxpbmUtaGVpZ2h0OiAyMi8xNztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICB9XG5cbn1cblxuLmNhcmRfX2gzX21vdmllIHtcbiAgICBtYXJnaW46IDQwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBtYXJnaW46IDIwcHggMDtcbiAgICAgICAgLmZvbnQtc2l6ZSgyMCk7XG5cbiAgICB9XG59XG5cbi5jYXJkX19tZWRpYS1jb250ZXh0IHtcbiAgICAuZGlzcGxheShmbGV4KTtcbiAgICAuZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB9XG59XG5cbi5jYXJkX2hvbm9yIHtcbiAgICBoZWlnaHQ6IDQxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgcGFkZGluZzogMCAzMHB4IDFweCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIC5kaXNwbGF5KGZsZXgpO1xuICAgIC5hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICAgIC5mbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gICAgfVxuXG5cbn1cblxuLmNhcmRfX21lZGlhX2hvbm9yIHtcbiAgICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIGhlaWdodDogNDE4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogfidsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMCksIHJnYmEoMjU1LDI1NSwyNTUsMSkpJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAtMXB4O1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB+J2xpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LDI1NSwyNTUsMCksIHJnYmEoMjU1LDI1NSwyNTUsMSkpJztcbiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXJkX19oZWFkaW5nX2hvbm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIC5mb250LXNpemUoNDApO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAuZmxleCgwIDEgYXV0byk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSg0Mik7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIC5mb250LXNpemUoMzQpO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5mb250LXNpemUoNDApO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5mb250LXNpemUoMzUpO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIC5mb250LXNpemUoMzApO1xuICAgIH1cbn1cblxuLmNhcmRfX3N1bW1hcnktd3JhcHBlcl9ob25vciB7XG4gICAgLmZsZXgoMSAxIGF1dG8pO1xuICAgIC5kaXNwbGF5KGZsZXgpO1xuICAgIC5hbGlnbi1pdGVtcyhzdHJldGNoKTtcbn1cblxuLmNhcmRfX3N1bW1hcnlfaG9ub3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDI3cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtYXgtd2lkdGg6IDg5MHB4O1xuICAgIC5mb250LXNpemUoMTgpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG5cbiAgICAgICAgLmZvbnQtc2l6ZSgxNik7XG5cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5cblxuLmNhcmRfX21lZGFsLXdyYXBwZXJfaG9ub3Ige1xuICAgIC5kaXNwbGF5KGZsZXgpO1xuICAgIC5hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICBtYXJnaW46IDAgLTMwcHg7XG4gICAgLmZsZXgoMCAxIGF1dG8pO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICAgIG1hcmdpbjogMCAtMjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAuZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICB9XG5cblxufVxuXG4uY2FyZF9fbWVkYWxfaG9ub3Ige1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogMCAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuICAgIC5kaXNwbGF5KGZsZXgpO1xuICAgIC5qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgLmFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG5cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi5jYXJkX19tZWRhbC1tZWRpYV9ob25vciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MzlweCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG59XG5cbi5jYXJkX19tZWRhbC1tZWRpYS1pbWdfaG9ub3Ige1xuICAgIG1heC1oZWlnaHQ6IDkwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MzlweCkge1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LWhlaWdodDogOTAlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgfVxufVxuXG5cblxuLmNhcmRfX21lZGFsLWNhdGVnb3J5X2hvbm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIC5mb250LXNpemUoMjIpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MzlweCkge1xuICAgICAgICAuZm9udC1zaXplKDE4KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgLmZvbnQtc2l6ZSgyMCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNHB4O1xuICAgIH1cbn1cblxuLmNhcmRfX21lZGFsLW5hbWVfaG9ub3Ige1xuICAgIC5mb250LXNpemUoMTQpO1xuICAgIGNvbG9yOiAjODA4MDgwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbn1cblxuLmNhcmQtbGlzdF9tb3ZpZSB7XG4gICAgbWFyZ2luOiAtMzBweDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuXG4gICAgICAgIG1hcmdpbjogLTIwcHg7XG4gICAgfVxufVxuXG4uY2FyZC1saXN0X19pdGVtX21vdmllIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIHBhZGRpbmctbGVmdDogMTUlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4OHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICAuY2FyZC1saXN0X19mYXZvcml0ZV9tb3ZpZVxuICAgICAgICB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uY2FyZC1saXN0X19pdGVtX21vdmllLWFjdGl2ZSB7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM2M2JkMmI7XG4gICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmNhcmQtbGlzdF9fdGltZV9tb3ZpZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn0JIg0K3QpNCY0KDQlSc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgLmZvbnQtc2l6ZSgxMCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM2M2JkMmI7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FyZC1saXN0X19pbWFnZSB7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjApO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkLWxpc3RfX21lZGlhX21vdmllIHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM2M2JkMmI7XG4gICAgICAgICAgICB3aWR0aDogOHB4O1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICfQkiDQrdCk0JjQoNCVJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgLmZvbnQtc2l6ZSgzMCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC50cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXJkLWxpc3RfX21lZGlhX21vdmllIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzclO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG59XG5cbi5jYXJkLWxpc3RfX2ltYWdlX21vdmllIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcmQtbGlzdF9faW1nX21vdmllIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbn1cblxuLmNhcmQtbGlzdF9fY29udGV4dF9tb3ZpZSB7XG4gICAgcGFkZGluZzogMiUgMi41JTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgcGFkZGluZzogNSUgMi41JTtcbiAgICB9XG59XG5cbi5jYXJkLWxpc3RfX2NhdGVnb3J5X21vdmllIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSgyMCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuZm9udC1zaXplKDE1KTtcbiAgICB9XG5cbn1cblxuLmNhcmQtbGlzdF9faXRlbSB7XG5cbiAgICAmOmhvdmVyIHtcblxuICAgICAgICAuY2FyZC1saXN0X19oZWFkaW5nIC5jYXJkLWxpc3RfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICM2M2JkMmI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXJkLWxpc3RfX2hlYWRpbmdfbW92aWUge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgLmZvbnQtc2l6ZSgzOCk7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuXG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgIC5jYXJkLWxpc3RfX2xpbms6aG92ZXIgJiB7XG4gICAgICAgIGNvbG9yOiAjNjNiZDJiO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5mb250LXNpemUoMjApO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdF9fZGF0ZV9tb3ZpZSB7XG5cbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbn1cblxuLmNhcmQtbGlzdF9fc3VtbWFyeV9tb3ZpZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDE1KTtcbiAgICBsaW5lLWhlaWdodDogMjEvMTU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY2FyZC1saXN0X190aW1lX21vdmllIHtcbiAgICBwYWRkaW5nOiAyJSAwIDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAzJTtcbiAgICAuZm9udC1zaXplKDIwKTtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1JTtcbiAgICAgICAgbGVmdDogNSU7XG4gICAgfVxuXG59XG5cbi5jYXJkLWxpc3RfX3RpdGxlIHtcbiAgbWFyZ2luOiAwIC0xMHB4O1xufVxuXG4vL1xuLy8uY2FyZC1saXN0X19hZGQtdG8tY29sbGVjdGlvbl9tb3ZpZSB7XG4vLyAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZmF2b3JpdGUtYmxhY2suc3ZnXCIpIG5vLXJlcGVhdCAwIDUwJTtcbi8vICAgIG1hcmdpbjogMjdweCAwIDA7XG4vL1xuLy8gICAgcGFkZGluZy1sZWZ0OiAyOXB4O1xuLy8gICAgY29sb3I6ICMwMDA7XG4vLyAgICAuZm9udC1zaXplKDE1KTtcbi8vICAgIGxldHRlci1zcGFjaW5nOiAwLjA4cHg7XG4vLyAgICBsaW5lLWhlaWdodDogMjJweDtcbi8vXG4vLyAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuLy8gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4vLyAgICAgICAgd2lkdGg6IDI2cHg7XG4vLyAgICAgICAgaGVpZ2h0OiAyNnB4O1xuLy8gICAgICAgIG1hcmdpbjogMDtcbi8vICAgICAgICBwYWRkaW5nOiAwO1xuLy8gICAgICAgIHRleHQtaW5kZW50OiAtMTAwMGVtO1xuLy8gICAgfVxuLy99XG4iLCIubW9yZSB7XG4gICAgYmFja2dyb3VuZDogIzFjM2M2YTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbn1cblxuLm1vcmVfX2J0biB7XG4gICAgYmFja2dyb3VuZDogIzFjM2M2YTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAyNnB4IDA7XG4gICAgLmZvbnQtc2l6ZSgyMCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBsaW5lLWhlaWdodDogMjMvMjA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MzQzNDM7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgcGFkZGluZzogMTlweCAwO1xuICAgIH1cbn0iLCIuc3Vic2NyaWJlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZkNzAwO1xuICAgIHBhZGRpbmc6IDQlIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMCAzNHB4O1xuICAgIH1cblxuXG59XG5cbi5zdWJzY3JpYmVfX2hlYWRpbmcge1xuICAgIHdpZHRoOiA2MCU7XG4gICAgbWFyZ2luOiAwIGF1dG8gMzNweDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDI4KTtcbiAgICBsaW5lLWhlaWdodDogMzcvMjg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuXG4gICAgICAgIC5mb250LXNpemUoMjIpO1xuXG5cbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4LzIyO1xuICAgIH1cbn1cblxuLnN1YnNjcmliZV9fZm9ybSB7XG4gICAgd2lkdGg6IDQyMnB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDAgYXV0byAzM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEyMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI2cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIDE1cHggMzJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbi5zdWJzY3JpYmVfX2ZpZWxkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybChcIi4uL2ltZy9zdWJzY3JpYmUucG5nXCIpIG5vLXJlcGVhdCAxM3B4IDUwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTJweCAxMnB4IDExcHggNDFweDtcbiAgICAuZm9udC1zaXplKDE0KTtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xcHg7XG4gICAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcblxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG4gICAgfVxuXG4gICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogLjM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAuMztcbiAgICAgICAgfVxuXG4gICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3Vic2NyaWJlX19idG4ge1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIHdpZHRoOiAxMjJweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgLmZvbnQtc2l6ZSgxNCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMXB4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59IiwiLmNvbHMge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuXG5cblxufVxuXG4uY29sc19fc2lkZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHdpZHRoOiAxNSU7XG4gICAgbWluLXdpZHRoOiAyMDVweDtcbiAgICBtaW4taGVpZ2h0OiA1NnB4O1xuXG4gICAgcGFkZGluZzogMjFweDtcbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIC5iYWNrZ3JvdW5kLWltYWdlKH4nbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwuMyksIHJnYmEoMjU1LDI1NSwyNTUsMSkpJyk7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAubmF2X19saXN0X3NpZGUge1xuXG4gICAgICAgICAgICAubWFpbi1wYWdlICYgIHtcbiAgICAgICAgICAgICAgICAvL2JveC1zaGFkb3c6IDFweCAxcHggNXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH0gICAgXG4gICAgfVxuXG4gICAgLmgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC42ZW07XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oMyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIH1cblxuXG5cblxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmc6IDE4cHg7XG5cbiAgICAgICAgLmgzIHtcblxuICAgICAgICAgICAgLmZvbnQtc2l6ZSgyMCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG5cbiAgICAgICAgLmgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29sc19fc2VjdGlvbiB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICBcblxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4iLCIuY29tbWVudHMge1xuICAgIHBhZGRpbmc6IDQ5cHggMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jb21tZW50c19faGVhZGluZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29tbWVudHNfX2NvbnRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn0iLCIuY2xlYXItcGxheWxpc3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMzlweDtcbiAgICAudHJhbnNsYXRlKDAsIC01MCUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICB9XG5cblxuXG59XG5cbi5jbGVhci1wbGF5bGlzdF9fYnRuIHtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE2LCAyMTYsIDIxNiwgLjMzKTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwIDlweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuMzMpO1xuICAgIC5mb250LXNpemUoMTQpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4LzE0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmVkO1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgIH1cblxuXG5cblxufSIsIi5hYm91dCB7XG4gICAgcGFkZGluZzogMCAxMi44JTtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDE4KTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAuZm9udC1zaXplKDE3KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI1LzE3O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBwYWRkaW5nOiAwIDE3cHg7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG59XG5cbi5hYm91dF9fY2hhbm5lbHMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5hYm91dF9fY2hhbm5lbHMtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjRmMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIG1hcmdpbjogMCAxNnB4IDI0cHggMDtcbiAgICBwYWRkaW5nOiAwIDMycHg7XG4gICAgLmZvbnQtc2l6ZSgyMik7XG4gICAgbGluZS1oZWlnaHQ6IDY0cHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgbWFyZ2luOiAwIDEycHggMThweCAwO1xuICAgICAgICBwYWRkaW5nOiAwIDI1cHg7XG4gICAgICAgIC5mb250LXNpemUoMTgpO1xuICAgICAgICBsaW5lLWhlaWdodDogNTVweDtcbiAgICB9XG59XG5cblxuLmFib3V0X19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiA0JSAwO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMTdweCAwO1xuXG4gICAgfVxufVxuXG4uYWJvdXRfX2gzIHtcbiAgICBtYXJnaW46IDcwcHggMCAzMHB4O1xuICAgIC5mb250LXNpemUoMjgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSgyNCk7XG4gICAgfVxufSIsIi5uZGFzaC1saXN0IHtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgIHBhZGRpbmc6IDAgMCAwIDI5cHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5kYXNoLWxpc3RfX2l0ZW0ge1xuICAgIG1hcmdpbjogMThweCAwIDA7XG4gICAgcGFkZGluZzogMCAwIDAgMTRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLjdlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG59XG5cbi5uZGFzaC1saXN0X2Vycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxufVxuXG4ubmRhc2gtbGlzdF9faXRlbV9lcnJvciB7XG4gICAgbWFyZ2luOiAwO1xufSIsIi5ydWxlcyB7XG4gICAgd2lkdGg6IDY5JTtcbiAgICBwYWRkaW5nOiA3JTtcbiAgICAuZm9udC1zaXplKDE4KTtcbiAgICBsaW5lLWhlaWdodDogMjcvMTg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgcGFkZGluZzogMzBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDE3cHg7XG5cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cbn0iLCIuc29ydGluZy1wYXJhbXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNDRweDtcblxuICAgIC50cmFuc2xhdGUoMCwgLTUwJSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICByaWdodDogMjJweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgLnRyYW5zZm9ybShub25lKTtcbiAgICB9XG5cbn1cblxuLnNvcnRpbmctcGFyYW1zX19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDM0cHg7XG5cbiAgICAuZm9udC1zaXplKDE1KTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufSIsIi5jb250YWN0cyB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG5cblxuXG59XG5cbi5jb250YWN0c19faW5mbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDQ1JTtcbiAgICBwYWRkaW5nOiA4NXB4IDMwcHggODVweCAxMDBweDtcbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi5jb250YWN0c19fbWFwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTUlO1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLmNvbnRhY3RzX19jb21wYW55IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIC5mb250LXNpemUoMjQpO1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44OSk7XG4gICAgbGluZS1oZWlnaHQ6IDMyLzI0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgIH1cblxufVxuXG4uY29udGFjdHNfX2FkZHJlc3Mge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgLmZvbnQtc2l6ZSgxOCk7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDI3LzE4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSgxNyk7XG4gICAgfVxufVxuXG4uY29udGFjdHNfX2xpbmsge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG59XG5cbi5jb250YWN0c19fcGFydG5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTlweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuODkpO1xuICAgIC5mb250LXNpemUoMTgpO1xuICAgIGxpbmUtaGVpZ2h0OiAyNy8xODtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5mb250LXNpemUoMTcpO1xuXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNS8xNztcbiAgICB9XG59XG5cbi5jb250YWN0c19fc2VjdG9ycyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAuY29sdW1uLWNvdW50KDIpO1xuICAgIC5jb2x1bW4tZ2FwKDI1cHgpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIC5jb2x1bW4tY291bnQoMSk7XG4gICAgICAgIC5jb2x1bW4tZ2FwKDApO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5jb2x1bW4tY291bnQoMik7XG4gICAgICAgIC5jb2x1bW4tZ2FwKDI1cHgpO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIC5jb2x1bW4tY291bnQoMSk7XG4gICAgICAgIC5jb2x1bW4tZ2FwKDApO1xuICAgIH1cbn1cblxuLmNvbnRhY3RzX19zZWN0b3JzLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xuICAgIHBhZGRpbmc6IDA7XG5cblxuICAgIC5mb250LXNpemUoMTgpO1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44OSk7XG4gICAgbGluZS1oZWlnaHQ6IDI3LzE4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLmZvbnQtc2l6ZSgxNyk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNS8xNztcbiAgICB9XG5cblxufSIsIi5hZGQtdG8tY29sbGVjdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMjlweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDE1KTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMi8xNTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xuXG4gICAgLmNhcmRfbW92aWUgJixcbiAgICAuY2FyZC1saXN0X19pdGVtICYge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICB9XG4gICAgLmNhcmRfbW92aWVfZmF2b3JpdGUgJixcbiAgICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogcmVkO1xuXG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgLnRyYW5zbGF0ZSgwLCAtM3B4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9mYXZvcml0ZS1ibGFjay5zdmdcIikgbm8tcmVwZWF0O1xuICAgICAgICB3aWR0aDogMjNweDtcbiAgICAgICAgaGVpZ2h0OiAxOXB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFkZC10by1jb2xsZWN0aW9uX2NhcmRfbW92aWUge1xuXG4gICAgbWFyZ2luOiAyN3B4IDI1cHggMjdweCAwO1xuICAgIGZsb2F0OiByaWdodDtcblxuXG4gICAgLy9AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4MHB4KSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAyNXB4IDE1cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG5cblxuXG5cbn1cbiIsIi5tb3ZpZS1tb2RlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAyOXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGNvbG9yOiAjMDAwO1xuICAgIC5mb250LXNpemUoMTUpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIyLzE1O1xuICAgIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHJlZDtcblxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIC50cmFuc2xhdGUoMCwgLTNweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbW92aWUtbW9kZS5zdmdcIikgbm8tcmVwZWF0O1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlX21vdmllLW1vZGUgJiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgfVxufVxuXG4ubW92aWUtbW9kZV9jYXJkX21vdmllIHtcblxuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDI3cHggMjVweCAyN3B4IDA7XG5cblxuICAgIC8vQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMjVweCAxNXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuXG59XG5cbi5tb3ZpZS1tb2RlX2NvbnRlbnRfaGVhZCB7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDM5NXB4O1xuICAgIC50cmFuc2xhdGUoMCwgLTUwJSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cblxufSIsIi5hZGQtdG8tc2l0ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMjlweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBjb2xvcjogIzAwMDtcbiAgICAuZm9udC1zaXplKDE1KTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMi8xNTtcbiAgICAudHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgLnRyYW5zbGF0ZSgwLCAtM3B4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9lbWJlZC5zdmdcIikgbm8tcmVwZWF0O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFkZC10by1zaXRlX2NhcmRfbW92aWUge1xuXG4gICAgbWFyZ2luOiAyN3B4IDAgMjdweCAwO1xuXG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgLypAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkgeyovXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTgwcHgpIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIG1hcmdpbjogMjVweCAxNXB4O1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbn0iLCIubGlrZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmZvbnQtc2l6ZSgyOCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cblxuXG5cblxuXG5cblxuICAgIGNvbG9yOiAjNjNiZDJiO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW46IDIwcHggMCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG5cblxuXG59XG5cbi5saWtlX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2xpa2VzLnN2Z1wiKSBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxM3B4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIC50cmFuc2xhdGUoMCwgLTVweCk7XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLmxpa2VfY2FyZF9tb3ZpZSAge1xuICAgIG1hcmdpbjogMjJweCAwO1xuXG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIxJTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIHdpZHRoOiAzMCU7XG5cbiAgICB9XG59IiwiLnBsYXlsaXN0LWVtcHR5IHtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBoZWlnaHQ6IH4nY2FsYygxMDB2aCAtIDQ1MnB4KSc7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuXG5cbiAgICAuZGlzcGxheShmbGV4KTtcblxuICAgIC5mbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuXG4gICAgLmZsZXgtd3JhcChub3dyYXApO1xuXG4gICAgLmp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgLmFsaWduLWNvbnRlbnQoc3RyZXRjaCk7XG5cbiAgICAuYWxpZ24taXRlbXMoY2VudGVyKTtcblxuXG5cblxufVxuXG4ucGxheWxpc3QtZW1wdHlfX2hlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSg0MCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIFxufVxuXG4ucGxheWxpc3QtZW1wdHlfX3RleHQge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIC5mb250LXNpemUoMTgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbn1cblxuIiwiLnF1YWxpdHktbW92aWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNDVweDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgLnRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cblxuLnF1YWxpdHktbW92aWVfX2hlYWRpbmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDlweDtcbiAgICAuZm9udC1zaXplKDEzKTtcbiAgICBjb2xvcjogIzAwMDtcblxuXG59XG5cbi5xdWFsaXR5LW1vdmllX19saW5rIHtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTE7XG5cblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblxuICAgIC5mb250LXNpemUoMTMpO1xuICAgIGNvbG9yOiAjNGE0YTRhO1xuICAgIGxpbmUtaGVpZ2h0OiAyNSAvIDEzO1xuICAgIC50cmFuc2l0aW9uKGFsbCAuM3MgZWFzZSk7XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG59XG5cbi5xdWFsaXR5LW1vdmllX19saW5rX2FjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcblxuICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cblxuXG5cbiIsIi5kZWxldGUtZnJvbS1jb2xsZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAzNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGNvbG9yOiByZWQ7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhweDtcbiAgICBsaW5lLWhlaWdodDogMjIvMTU7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcblxuICAgIC5jYXJkX21vdmllICYsXG4gICAgLmNhcmQtbGlzdF9faXRlbSAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmNhcmRfbW92aWVfZmF2b3JpdGUgJixcbiAgICAuY2FyZC1saXN0X19pdGVtX2Zhdm9yaXRlICYge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG5cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6YWZ0ZXIsXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmM2MwMCB1cmwoLi4vaW1nL2Zhdm9yaXRlLnN2Zykgbm8tcmVwZWF0IDUwJSA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTlweCAxOXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgLnRyYW5zaXRpb24oYWxsIC4zcyBlYXNlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9mYXZvcml0ZS1kZWwtd2hpdGUuc3ZnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMnB4IDIzcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgIGhlaWdodDogMzVweDtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4uZGVsZXRlLWZyb20tY29sbGVjdGlvbl9jYXJkX21vdmllIHtcblxuICAgIG1hcmdpbjogMjdweCA0MHB4IDI3cHggMDtcbiAgICBmbG9hdDogcmlnaHQ7XG5cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDQwcHggMjBweCAwO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXJnaW46IDhweCAxNHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG5cblxuXG5cbn1cblxuXG5cbiIsIlxuLm1vZGFsIHtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG59XG5cbi5tb2RhbF9faW5uZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG5cblxuXG5cblxuXG5cbn1cblxuLm1vZGFsLCAubW9kYWxfX2JnIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbn1cblxuLm1vZGFsX19ob3Jpc29udGFsX2lubmVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiBhdXRvO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ubW9kYWxfX3ZlcnRpY2FsX2lubmVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLnBlcnNwZWN0aXZlKDEzMDBweCk7XG4gICAgcGFkZGluZzogMzBweDtcbn1cblxuLm1vZGFsX19iZyB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAub3BhY2l0eSgwKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAudHJhbnNpdGlvbihhbGwgLjVzIGVhc2UpO1xuXG59XG5cbi5zaG93IC5tb2RhbF9fYmcge1xuICAgIC5vcGFjaXR5KC41KTtcbn1cblxuXG4ubW9kYWxfX2NvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDE1cHggIzAwMDtcbiAgICBwYWRkaW5nOiAyNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICAgLnNjYWxlKDAuNyk7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIC50cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UpO1xuXG5cblxufVxuXG4uc2hvdyAubW9kYWxfX2NvbnRlbnQge1xuXG4gICAgLnNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5tb2RhbF9fY2xvc2VfYnRuIHtcblxuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogMjtcbiAgICB0ZXh0LWluZGVudDotMTAwMGVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9jbG9zZV91cF9ib2R5LnBuZ1wiKSBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxufVxuXG5cblxuLm1vZGFsX2xpZ2h0Ym94X19wcmV2LCAubW9kYWxfbGlnaHRib3hfX25leHQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cblxuXG4ubW9kYWxfbGlnaHRib3hfX25leHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5tb2RhbC1lbWJlZCAge1xuICAgIC5tb2RhbF9fY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgICAgLmZvbnQtc2l6ZSgxNSk7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG5cbn1cblxuLm1vZGFsLWVtYmVkX19maWVsZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG5cbiAgICAuZm9udC1zaXplKDMwKTtcblxuXG5cbiAgICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cbiIsIi5za2lwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAuZm9udC1zaXplKDE2KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3BhY2l0eTogLjY7XG59XG5cbi5za2lwX21vdmllIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgYm90dG9tOiA0MHB4O1xuICAgIHotaW5kZXg6IDEwO1xuXG59IiwiLnByZXJvbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC5mb250LXNpemUoMTYpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAuNjtcbn1cblxuLnByZXJvbGxfbW92aWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGJvdHRvbTogNDBweDtcbiAgICB6LWluZGV4OiAxMDtcbn0iLCIuZXJyb3ItYm94IHtcbiAgICBwYWRkaW5nOiA1NXB4IDEwMHB4O1xuICAgIC5mb250LXNpemUoMTgpO1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44OSk7XG4gICAgbGluZS1oZWlnaHQ6IDI3IC8gMTg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBwYWRkaW5nOiAyNXB4IDE3cHg7XG4gICAgICAgIC5mb250LXNpemUoMTYpO1xuICAgIH1cblxuXG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn0iLCIuYmFubmVyIHtcbiAgICAmX19pbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxufSIsIi5maWxtcy1tb3JlX190ZXh0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKTtcbiAgICBwYWRkaW5nOiAzNnB4IDQ1cHg7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsLjg5KTtcbiAgICAuZm9udC1zaXplKDE4KTtcbiAgICBsaW5lLWhlaWdodDogMjdweDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgfVxuXG4gICAgLmgxIHtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLG51bGwsIi5zb2NpYWxzLWNoYW5uZWxzIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4IDAgNDBweDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMjRweCA0MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDEycHggNDBweDtcbiAgICB9XG59XG5cbi5zb2NpYWxzLWNoYW5uZWxzX193cmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IDc2MHB4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG59XG5cbi5zb2NpYWxzLWNoYW5uZWxzX19zdW1tYXJ5IHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2YzZjNmMztcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIC5mb250LXNpemUoMTYpO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xuICAgIH1cbn1cblxuLnNvY2lhbHMtY2hhbm5lbHNfX3N1YnNjcmliZS1oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIC5mb250LXNpemUoMTYpO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuZm9udC1zaXplKDE1KTtcbiAgICB9XG59XG5cblxuLnNvY2lhbHMtY2hhbm5lbHNfX3N1YnNjcmliZS1saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgNTAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgfVxufVxuXG4uc29jaWFscy1jaGFubmVsc19fc3Vic2NyaWJlLWxpbmtfZmIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMDU4YTM7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NvY2lhbHMvZmFjZWJvb2suc3ZnXCIpO1xufVxuXG4uc29jaWFscy1jaGFubmVsc19fc3Vic2NyaWJlLWxpbmtfdmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzZjc2YTc7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NvY2lhbHMvdmsuc3ZnXCIpO1xufVxuXG4uc29jaWFscy1jaGFubmVsc19fc3Vic2NyaWJlLWxpbmtfdHcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGEzZmE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NvY2lhbHMvdHdpdHRlci5zdmdcIik7XG59XG5cbi5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtbGlua19vayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOGQwMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvc29jaWFscy9vay5zdmdcIik7XG59XG5cbi5zb2NpYWxzLWNoYW5uZWxzX19zdWJzY3JpYmUtbGlua195dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvc29jaWFscy95b3V0dWJlLnN2Z1wiKTtcbn1cblxuXG4iLCIuZG93bmxvYWQtdmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgY29sb3I6ICMwMDA7XG4gICAgLmZvbnQtc2l6ZSgxNSk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhweDtcbiAgICBsaW5lLWhlaWdodDogMjIvMTU7XG4gICAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogcmVkO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIC50cmFuc2xhdGUoMCwgLTNweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZG93bmxvYWQyLnN2Z1wiKSBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWluZGVudDogLTEwMDBlbTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLmRvd25sb2FkLXZpZGVvX2NhcmRfbW92aWUge1xuXG4gICAgbWFyZ2luOiAyN3B4IDI1cHggMjdweCAwO1xuXG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODE5cHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTNweDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjdweDtcbiAgICB9XG5cbiAgICAvL0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTgwcHgpIHtcbiAgICAgICAgLy9kaXNwbGF5OiBub25lO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgbWFyZ2luOiAyNXB4IDE1cHg7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxufSIsIi5zcHV0bmlrLWluZm8ge1xuICB3aWR0aDogNjklO1xuICBwYWRkaW5nOiA3JTtcbiAgLmZvbnQtc2l6ZSgxOCk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMzBweDtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDE3cHg7XG4gIH1cblxuICAmX190YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG5cbiAgICB0ciB7XG4gICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbiAgfVxufVxuIl19 */
