/*
Theme Name: Unireso
Template: phlox-pro
Version: 1.0.2
 */
#unireso-root .elementor-widget-theme-post-content > .elementor-widget-container > *:not(.elementor):not(.alignwide):not(.alignfull) {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto; }
  @media (max-width: 1024px) {
    #unireso-root .elementor-widget-theme-post-content > .elementor-widget-container > *:not(.elementor):not(.alignwide):not(.alignfull) {
      max-width: 720px; } }

#unireso-root .elementor-widget-theme-post-content > .elementor-widget-container > .wp-block-separator {
  max-width: none !important; }

#unireso-root .wp-block-group.has-background {
  padding: 1rem; }

#unireso-root .wp-block-image {
  margin: 0; }

#unireso-root .aux-bus2-slider-scroll-arrows {
  animation: bouncing-arrows 2s infinite linear; }

#unireso-root .aux-bus2-slider-controler-numbers {
  width: 1.75em;
  padding: 0 8px;
  margin: 0 4px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 20px;
  font-weight: 500;
  text-align: center; }
  #unireso-root .aux-bus2-slider-controler-numbers--active {
    border-radius: 25px;
    background: #E02328; }

#unireso-root .uni-slider__back, #unireso-root .uni-slider__overlay {
  top: 0 !important;
  height: calc(100px + 600 * (100vw - 320px) / 1580) ; }
  @media screen and (min-width: 1900px) {
    #unireso-root .uni-slider__back, #unireso-root .uni-slider__overlay {
      height: 700px ; } }

#unireso-root .uni-slider__back {
  z-index: 1;
  right: 0; }

#unireso-root .uni-slider__overlay {
  z-index: 2;
  right: 40px !important; }

#unireso-root .uni-slider h2 {
  font-size: calc(20px + 28 * (100vw - 320px) / 1080) ;
  line-height: calc(26px + 28 * (100vw - 320px) / 1080) ;
  margin: 0 0 .5rem;
  font-weight: normal; }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider h2 {
      font-size: 48px ; } }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider h2 {
      line-height: 54px ; } }

#unireso-root .uni-slider h3 {
  font-size: calc(16px + 22 * (100vw - 320px) / 1080) ;
  line-height: calc(18px + 24 * (100vw - 320px) / 1080) ; }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider h3 {
      font-size: 38px ; } }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider h3 {
      line-height: 42px ; } }

#unireso-root .uni-slider h4 {
  font-size: calc(10px + 8 * (100vw - 320px) / 1080) ;
  padding: 1rem 0 0;
  margin: 0 0 .5rem;
  letter-spacing: 3px; }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider h4 {
      font-size: 18px ; } }
  @media screen and (min-width: 782px) {
    #unireso-root .uni-slider h4 {
      padding-top: 2rem; } }

#unireso-root .uni-slider__divider {
  margin: .5rem 0; }
  @media screen and (min-width: 600px) {
    #unireso-root .uni-slider__divider {
      margin: 1rem 0 2rem; } }
  @media screen and (min-width: 1023px) {
    #unireso-root .uni-slider__divider {
      margin-top: 2rem;
      margin-bottom: 2rem; } }

#unireso-root .uni-slider__content {
  font-size: calc(13px + 5 * (100vw - 320px) / 1080) ;
  line-height: calc(16px + 8 * (100vw - 320px) / 1080) ;
  width: auto !important;
  max-width: 800px; }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider__content {
      font-size: 18px ; } }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider__content {
      line-height: 24px ; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider__content {
      margin-top: 2rem; } }

#unireso-root .uni-slider .ms-btn-container {
  width: auto !important;
  height: auto !important;
  top: auto !important;
  left: .5rem !important;
  bottom: 5rem !important; }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider .ms-btn-container {
      bottom: 9rem !important; } }

#unireso-root .uni-slider__button {
  padding: .5rem 1rem;
  margin: .5rem 0 1rem;
  color: white; }
  @media screen and (min-width: 480px) {
    #unireso-root .uni-slider__button {
      margin: 1rem 0 2rem; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider__button {
      padding: .75rem 1.5rem; } }

#unireso-root .uni-slider__social {
  font-size: calc(12px + 6 * (100vw - 320px) / 1080) ;
  top: auto !important;
  left: .5rem !important;
  bottom: 4rem !important;
  margin: 0 !important;
  line-height: 1.4 !important; }
  @media screen and (min-width: 1400px) {
    #unireso-root .uni-slider__social {
      font-size: 18px ; } }

#unireso-root .uni-slider .ms-btn-container, #unireso-root .uni-slider__social {
  z-index: 2; }
  @media screen and (min-width: 600px) {
    #unireso-root .uni-slider .ms-btn-container, #unireso-root .uni-slider__social {
      left: 2rem !important; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider .ms-btn-container, #unireso-root .uni-slider__social {
      left: calc(40px + 260 * (100vw - 1000px) / 920)  !important; } }
  @media screen and (min-width: 1920px) {
    #unireso-root .uni-slider .ms-btn-container, #unireso-root .uni-slider__social {
      left: 300px  !important; } }

#unireso-root .uni-slider .ms-view, #unireso-root .uni-slider .ms-slide {
  height: calc(410px + 290 * (100vw - 320px) / 880)  !important; }
  @media screen and (min-width: 1200px) {
    #unireso-root .uni-slider .ms-view, #unireso-root .uni-slider .ms-slide {
      height: 700px  !important; } }

#unireso-root .uni-slider .ms-slide-container .ms-anim-layers {
  box-sizing: border-box;
  padding: 0 0 60px .5rem; }
  #unireso-root .uni-slider .ms-slide-container .ms-anim-layers:before {
    width: calc(140px + 620 * (100vw - 320px) / 1580) ;
    height: calc(105px + 615 * (100vw - 320px) / 1580) ;
    position: relative;
    z-index: 10;
    display: block;
    float: right;
    content: ''; }
    @media screen and (min-width: 1900px) {
      #unireso-root .uni-slider .ms-slide-container .ms-anim-layers:before {
        width: 760px ; } }
    @media screen and (min-width: 1900px) {
      #unireso-root .uni-slider .ms-slide-container .ms-anim-layers:before {
        height: 720px ; } }
  @media screen and (min-width: 600px) {
    #unireso-root .uni-slider .ms-slide-container .ms-anim-layers {
      padding-left: 2rem; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider .ms-slide-container .ms-anim-layers {
      padding-left: calc(40px + 260 * (100vw - 1000px) / 920) ; } }
  @media screen and (min-width: 1920px) {
    #unireso-root .uni-slider .ms-slide-container .ms-anim-layers {
      padding-left: 300px ; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider .ms-slide-container .ms-anim-layers {
      padding-top: calc(40px + 40 * (100vw - 1000px) / 920) ; } }
  @media screen and (min-width: 1920px) {
    #unireso-root .uni-slider .ms-slide-container .ms-anim-layers {
      padding-top: 80px ; } }

#unireso-root .uni-slider .ms-slide-container .ms-layer:not(.uni-slider__back):not(.uni-slider__overlay):not(.uni-slider__social):not(a) {
  position: relative;
  z-index: 2;
  top: 0 !important;
  left: 0 !important; }

#unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler {
  top: auto !important;
  left: .5rem !important;
  bottom: .75rem !important; }
  @media screen and (min-width: 600px) {
    #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler {
      left: auto !important;
      right: 2rem !important;
      bottom: 7rem !important; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler {
      bottom: 11rem !important; } }
  @media screen and (min-width: 1000px) {
    #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler {
      right: calc(400px + 360 * (100vw - 1000px) / 900)  !important; } }
  @media screen and (min-width: 1900px) {
    #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler {
      right: 760px  !important; } }
  #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler:after {
    position: absolute;
    display: block;
    color: var(--e-global-color-secondary);
    font: 900 28px 'Font Awesome 5 Free';
    right: -55px;
    top: 0;
    content: '\f103';
    transform: translateX(-50%);
    animation: bouncing-arrows 2s infinite linear; }
    @media screen and (min-width: 600px) {
      #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-controler:after {
        left: 50%;
        right: auto;
        top: 3rem; } }

#unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-active-controler {
  top: auto !important;
  left: 0 !important;
  bottom: 74px; }

#unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-scroll-arrows {
  top: auto !important;
  right: .5rem;
  bottom: 20px !important;
  left: auto !important;
  margin-left: -40px; }
  @media screen and (min-width: 600px) {
    #unireso-root .uni-slider .ms-overlay-layers .aux-bus2-slider-scroll-arrows {
      right: 2rem;
      bottom: 4rem !important; } }

@media (min-width: 768px) {
  #unireso-root .unireso-home-news .elementor-column {
    width: 50%; } }

#unireso-root .elementor-posts .elementor-post {
  cursor: pointer;
  margin-bottom: 0; }
  #unireso-root .elementor-posts .elementor-post__card {
    position: relative;
    padding-top: 33.333%;
    padding-bottom: 50px; }
    @media (min-width: 768px) {
      #unireso-root .elementor-posts .elementor-post__card {
        padding-top: 50%; } }
    #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__text, #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__meta-data, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__text, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__meta-data {
      top: 10px;
      background: var(--e-global-color-secondary); }
      #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__text, #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__text p, #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__text a, #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__meta-data, #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__meta-data p, #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__meta-data a, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__text, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__text p, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__text a, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__meta-data, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__meta-data p, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__meta-data a {
        color: white !important; }
    #unireso-root .elementor-posts .elementor-post__card:hover .elementor-post__title:before, #unireso-root .elementor-posts .elementor-post__card:focus .elementor-post__title:before {
      background: white; }
  #unireso-root .elementor-posts .elementor-post__thumbnail__link {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1; }
  #unireso-root .elementor-posts .elementor-post__badge {
    z-index: 4; }
  #unireso-root .elementor-posts .elementor-post__text, #unireso-root .elementor-posts .elementor-post__meta-data {
    position: relative;
    top: 0;
    width: 85%;
    margin: 0 auto;
    background: white;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    transition: top .5s ease, background .25s ease; }
  #unireso-root .elementor-posts .elementor-post__text {
    order: 3;
    z-index: 3;
    margin: 0 auto;
    border-radius: 0 0 8px 8px; }
  #unireso-root .elementor-posts .elementor-post__excerpt {
    margin-bottom: 0; }
  #unireso-root .elementor-posts .elementor-post__meta-data {
    display: flex;
    flex-direction: column;
    justify-content: center;
    order: 2;
    z-index: 2;
    border: none;
    border-radius: 8px 8px 0 0; }
  #unireso-root .elementor-posts .elementor-post__meta-data {
    padding: 40px 40px 8px; }
  #unireso-root .elementor-posts .elementor-post__text {
    padding: 0 16px 40px 40px; }
  #unireso-root .elementor-posts .elementor-post__title {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-bottom: 8px;
    margin-bottom: 0; }
    #unireso-root .elementor-posts .elementor-post__title:before {
      display: block;
      position: absolute;
      left: -16px;
      top: 50%;
      transform: translateY(-50%);
      width: 6px;
      height: 6px;
      border-radius: 2px;
      background: var(--e-global-color-secondary);
      content: ''; }

#unireso-root .news--red .elementor-posts .elementor-post__card:hover .elementor-post__text, #unireso-root .news--red .elementor-posts .elementor-post__card:hover .elementor-post__meta-data, #unireso-root .news--red .elementor-posts .elementor-post__card:focus .elementor-post__text, #unireso-root .news--red .elementor-posts .elementor-post__card:focus .elementor-post__meta-data {
  background: var(--e-global-color-primary); }

#unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li {
  margin: 0; }
  #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li > a {
    display: block;
    min-height: 0;
    padding: 0 1rem;
    color: var(--e-global-color-primary);
    font: 1rem/1.4em var(--e-global-typography-primary-font-family);
    text-transform: lowercase; }
    @media (max-width: 767px) {
      #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li > a {
        font-size: .8rem; } }
    #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li > a:before {
      display: block;
      position: absolute;
      left: 50%;
      top: calc(100% - 4px);
      transform: translateX(-50%);
      width: 6px;
      height: 6px;
      border-radius: 2px;
      background: var(--e-global-color-secondary);
      content: ''; }
    #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li > a:after {
      display: block;
      margin-top: 0.8em;
      margin-left: -1rem;
      margin-right: -1rem;
      border-bottom: 1px solid var(--e-global-color-secondary);
      content: ''; }
    #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li > a:hover, #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li > a:focus {
      color: var(--e-global-color-secondary); }
  #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li.bdt-active > a {
    font-weight: bold; }

@media (max-width: 480px) {
  #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav {
    display: flex;
    flex-wrap: wrap; }
    #unireso-root .elementor-widget-bdt-navbar .bdt-navbar-nav > li {
      width: 50%;
      margin-bottom: 1rem;
      text-align: center; } }

#unireso-root.archive.category .elementor-widget-bdt-navbar, #unireso-root.archive.tag .elementor-widget-bdt-navbar {
  position: relative; }
  #unireso-root.archive.category .elementor-widget-bdt-navbar:before, #unireso-root.archive.tag .elementor-widget-bdt-navbar:before {
    display: block;
    position: absolute;
    width: 1rem;
    height: calc(2.2em + 1px);
    bottom: 0;
    left: -1rem;
    border-bottom: 1px solid var(--e-global-color-secondary);
    border-left: 1px solid var(--e-global-color-secondary);
    border-radius: 0 0 0 .5rem;
    content: ''; }

#unireso-root.elementor-page-30841 .aux-fold {
  max-width: none;
  padding: 0; }

#unireso-root .aux-widget-logo {
  display: block !important; }

#unireso-root .elementor-widget-aux_breadcrumbs {
  padding: 0 .5rem;
  margin: 2rem 0; }
  @media (max-width: 1024px) {
    #unireso-root .elementor-widget-aux_breadcrumbs {
      margin: 1rem 0; } }
  @media (max-width: 767px) {
    #unireso-root .elementor-widget-aux_breadcrumbs {
      margin: .5rem 0; } }

#unireso-root .aux-breadcrumbs {
  margin: 0; }
  #unireso-root .aux-breadcrumbs span {
    padding: 0; }
  #unireso-root .aux-breadcrumbs a {
    display: inline-block; }
  #unireso-root .aux-breadcrumbs span:nth-child(2) a {
    padding-left: 0; }
  #unireso-root .aux-breadcrumbs .aux-breadcrumb-sep {
    padding: 0 10px; }
    @media (max-width: 1024px) {
      #unireso-root .aux-breadcrumbs .aux-breadcrumb-sep {
        padding: 0 5px; } }
    @media (max-width: 767px) {
      #unireso-root .aux-breadcrumbs .aux-breadcrumb-sep {
        padding: 2px; } }

#unireso-root .aux-elementor-header.aux-sticky .elementor-section-wrap > .elementor-section {
  height: auto !important; }

#unireso-root .page-title-section .page-header {
  border: none; }

#unireso-root .page-header > .aux-container {
  max-width: 1140px;
  padding-left: 10px;
  padding-right: 10px; }

#unireso-root .elementor-widget-theme-post-content ul {
  list-style: disc; }

#unireso-root .elementor-widget-theme-post-content .bdt-navbar-nav {
  list-style: none; }

#unireso-root .elementor-widget-theme-archive-title {
  padding-left: .5rem;
  padding-right: .5rem; }

#unireso-root.archive.category .elementor-widget-theme-archive-title, #unireso-root.archive.tag .elementor-widget-theme-archive-title {
  padding-bottom: 3rem;
  margin-bottom: 0; }
  #unireso-root.archive.category .elementor-widget-theme-archive-title:before, #unireso-root.archive.tag .elementor-widget-theme-archive-title:before {
    display: block;
    position: absolute;
    width: 0;
    top: 1.5em;
    bottom: 0;
    left: -1rem;
    border-left: 1px solid var(--e-global-color-secondary);
    content: ''; }
  #unireso-root.archive.category .elementor-widget-theme-archive-title:after, #unireso-root.archive.tag .elementor-widget-theme-archive-title:after {
    display: block;
    position: absolute;
    left: calc(-1rem + 1px);
    top: 1.25em;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--e-global-color-secondary);
    content: ''; }

#unireso-root .wp-block-separator {
  position: relative;
  margin: 3rem 0 6rem;
  border-bottom: 1px solid var(--e-global-color-primary); }
  @media (max-width: 1024px) {
    #unireso-root .wp-block-separator {
      margin: 2rem 0 4rem; } }
  @media (max-width: 767px) {
    #unireso-root .wp-block-separator {
      margin: 1rem 0 2rem; } }
  #unireso-root .wp-block-separator:before, #unireso-root .wp-block-separator:after {
    display: block;
    position: absolute;
    top: -2px;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--e-global-color-secondary);
    content: ''; }
  #unireso-root .wp-block-separator:before {
    left: 0; }
  #unireso-root .wp-block-separator:after {
    right: -4px; }

#unireso-root .wp-block-getwid-images-slider {
  height: 80vh !important;
  min-height: 300px;
  max-height: 700px; }
  #unireso-root .wp-block-getwid-images-slider__wrapper, #unireso-root .wp-block-getwid-images-slider .slick-list, #unireso-root .wp-block-getwid-images-slider .slick-track, #unireso-root .wp-block-getwid-images-slider__item, #unireso-root .wp-block-getwid-images-slider figure {
    height: 100%; }
  #unireso-root .wp-block-getwid-images-slider .slick-dotted.slick-slider {
    padding: 0; }
  #unireso-root .wp-block-getwid-images-slider figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%; }
  #unireso-root .wp-block-getwid-images-slider img {
    min-height: 0;
    flex: 1;
    object-fit: contain; }
  #unireso-root .wp-block-getwid-images-slider__caption {
    box-sizing: border-box;
    position: static;
    background: var(--e-global-color-primary); }
    @media (max-width: 767px) {
      #unireso-root .wp-block-getwid-images-slider__caption {
        padding: 20px 5px 20px;
        margin-top: .5rem;
        font-size: .8rem; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      #unireso-root .wp-block-getwid-images-slider__caption {
        padding: 20px 10px;
        margin-top: 1rem;
        font-size: 1rem; } }
    @media (min-width: 1024px) {
      #unireso-root .wp-block-getwid-images-slider__caption {
        padding: 30px 20px;
        margin-top: 2rem; } }
  #unireso-root .wp-block-getwid-images-slider.has-dots-outside {
    margin-bottom: 40px; }
    #unireso-root .wp-block-getwid-images-slider.has-dots-outside .slick-dots {
      bottom: -40px; }
  #unireso-root .wp-block-getwid-images-slider.has-arrows-inside .slick-prev {
    left: -10px; }
  #unireso-root .wp-block-getwid-images-slider.has-arrows-inside .slick-next {
    right: -10px; }

#unireso-root .slick-arrow {
  width: 24px;
  height: 24px;
  box-sizing: content-box;
  border-radius: 3px;
  background: var(--e-global-color-secondary);
  box-shadow: none; }
  #unireso-root .slick-arrow:before {
    display: block;
    font-family: 'Font Awesome 5 Free';
    font-size: 1rem;
    font-weight: 900;
    color: white; }
  @media (min-width: 768px) {
    #unireso-root .slick-arrow {
      width: 32px;
      height: 32px; }
      #unireso-root .slick-arrow:before {
        font-size: 1.2rem; } }

#unireso-root .slick-prev:before {
  content: '\f053'; }

#unireso-root .slick-next:before {
  content: '\f054'; }

#unireso-root .slick-dots {
  padding-top: 1rem; }
  #unireso-root .slick-dots button {
    box-shadow: none; }
    #unireso-root .slick-dots button:before {
      width: 7px;
      height: 7px;
      border-radius: 2px;
      background: var(--e-global-color-secondary);
      content: ''; }

#unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td.dtr-control,
#unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th.dtr-control {
  padding-top: 15px;
  padding-bottom: 15px;
  padding-left: 55px !important; }
  #unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td.dtr-control::before,
  #unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th.dtr-control::before {
    left: 15px;
    transform: translateY(-50%);
    width: 25px;
    height: 25px;
    margin: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background-color: var(--e-global-color-primary);
    font: bold 1rem var(--e-global-typography-primary-font-family);
    line-height: 25px; }

#unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
#unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
  background-color: var(--e-global-color-secondary); }

#unireso-root table.dataTable.dtr-inline.collapsed > tbody > tr .dtr-details {
  list-style: none; }

#unireso-root .wp-block-getwid-content-timeline-item__content-wrapper h3 {
  float: left;
  padding: 0 .5rem;
  margin: 0 1rem 0 0;
  border-radius: .5rem;
  background: var(--e-global-color-secondary);
  color: white;
  font-size: 1rem;
  line-height: 3rem; }

#unireso-root .wp-block-getwid-content-timeline-item__content-wrapper h2 {
  overflow: hidden;
  margin: 0.5rem 0 2rem;
  font-size: 1.4rem;
  line-height: 2rem; }

#unireso-root .wp-block-getwid-content-timeline-item__point-content {
  border: none;
  border-radius: 4px;
  background: #dee3e6; }

#unireso-root .wp-block-getwid-content-timeline-item.is-active .wp-block-getwid-content-timeline-item__point-content {
  background: var(--e-global-color-secondary); }

.aux-fold {
  padding-left: 5px;
  padding-right: 5px; }
  @media (min-width: 800px) {
    .aux-fold {
      padding-left: 20px;
      padding-right: 20px; } }
  @media (min-width: 1200px) {
    .aux-fold {
      padding-left: 35px;
      padding-right: 35px; } }

@keyframes bouncing-arrows {
  0% {
    transform: translateX(-50%); }
  100% {
    transform: translateX(-50%) translateY(16px); } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiX2xpYi5zY3NzIiwibGliL2JyZWFrcG9pbnQvX2JyZWFrcG9pbnQuc2NzcyIsImxpYi9icmVha3BvaW50L2JyZWFrcG9pbnQvX3NldHRpbmdzLnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L19jb250ZXh0LnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L19wYXJzZXJzLnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L3BhcnNlcnMvX3F1ZXJ5LnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludC9wYXJzZXJzL3NpbmdsZS9fZGVmYXVsdC5zY3NzIiwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludC9wYXJzZXJzL19kb3VibGUuc2NzcyIsImxpYi9icmVha3BvaW50L2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZG91YmxlLXN0cmluZy5zY3NzIiwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC5zY3NzIiwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsImxpYi9icmVha3BvaW50L2JyZWFrcG9pbnQvcGFyc2Vycy90cmlwbGUvX2RlZmF1bHQuc2NzcyIsImxpYi9icmVha3BvaW50L2JyZWFrcG9pbnQvcGFyc2Vycy9fcmVzb2x1dGlvbi5zY3NzIiwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsImxpYi9icmVha3BvaW50L2JyZWFrcG9pbnQvX25vLXF1ZXJ5LnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L19yZXNwb25kLXRvLnNjc3MiLCJsaWIvYnJlYWtwb2ludC9icmVha3BvaW50L19sZWdhY3ktc2V0dGluZ3Muc2NzcyIsIm1vZHVsZXMvX2d1dGVuYmVyZy5zY3NzIiwibW9kdWxlcy9faG9tZS1zbGlkZXIuc2NzcyIsIm1vZHVsZXMvX25ld3Muc2NzcyIsIm1vZHVsZXMvX3BhZ2Uuc2NzcyIsIm1vZHVsZXMvX3NsaWNrLnNjc3MiLCJtb2R1bGVzL190YWJsZS5zY3NzIiwibW9kdWxlcy9fdGltZWxpbmUuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuVGhlbWUgTmFtZTogVW5pcmVzb1xuVGVtcGxhdGU6IHBobG94LXByb1xuVmVyc2lvbjogMS4wLjJcbiAqL1xuXG5AaW1wb3J0IFwibGliXCI7XG5AaW1wb3J0IFwibGliL2JyZWFrcG9pbnQvYnJlYWtwb2ludFwiO1xuXG4kYnAtbW9iaWxlOiAobWF4LXdpZHRoIDc2N3B4KTtcbiRicC10YWJsZXQ6IChtYXgtd2lkdGggMTAyNHB4KTtcblxuI3VuaXJlc28tcm9vdCB7XG5cbiAgICBAaW1wb3J0IFwibW9kdWxlcy9ndXRlbmJlcmdcIjtcbiAgICBAaW1wb3J0IFwibW9kdWxlcy9ob21lLXNsaWRlclwiO1xuICAgIEBpbXBvcnQgXCJtb2R1bGVzL25ld3NcIjtcbiAgICBAaW1wb3J0IFwibW9kdWxlcy9wYWdlXCI7XG4gICAgQGltcG9ydCBcIm1vZHVsZXMvc2xpY2tcIjtcbiAgICBAaW1wb3J0IFwibW9kdWxlcy90YWJsZVwiO1xuICAgIEBpbXBvcnQgXCJtb2R1bGVzL3RpbWVsaW5lXCI7XG59XG5cbi5hdXgtZm9sZCB7XG5cbiAgICBwYWRkaW5nLWxlZnQ6ICA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSB7XG5cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAgMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAgMzVweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgICB9XG59XG5cbi5wYWdlIHtcblxufVxuXG5cbkBrZXlmcmFtZXMgYm91bmNpbmctYXJyb3dzIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgxNnB4KTtcbiAgfVxufVxuIiwiXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtYmVyKSB7XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbkBtaXhpbiBmbHVpZCgkcHJvcGVydHksICRtaW4tdmFsdWUsICRtaW4td2lkdGgsICRtYXgtdmFsdWUsICRtYXgtd2lkdGgsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG5cbiAgICAkaTogdW5xdW90ZShcIlwiKTtcbiAgICBAaWYgKCRpbXBvcnRhbnQpIHtcbiAgICAgICAgJGk6IHVucXVvdGUoXCIgIWltcG9ydGFudFwiKTtcbiAgICB9XG5cbiAgICAkY2FsYzogY2FsYygjeyRtaW4tdmFsdWV9ICsgI3tzdHJpcC11bml0KCRtYXgtdmFsdWUpIC0gc3RyaXAtdW5pdCgkbWluLXZhbHVlKX0gKiAoMTAwdncgLSAjeyRtaW4td2lkdGh9KSAvICN7c3RyaXAtdW5pdCgkbWF4LXdpZHRoIC0gJG1pbi13aWR0aCl9KSRpO1xuXG5cbiAgICBAaWYgKCRtaW4td2lkdGggPT0gMzIwcHgpIHtcblxuICAgICAgICAjeyRwcm9wZXJ0eX06ICRjYWxjO1xuXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiAkbWluLXdpZHRoKSB7XG5cbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJGNhbGM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZChtaW4td2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkbWF4LXZhbHVlICRpO1xuICAgIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcyBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkc2V0dGluZykge1xuICBAaWYgYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnQsICRzZXR0aW5nKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCcmVha3BvaW50LVNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwge1xuICAgIEB3YXJuIFwiV29yZHMgaW4gQnJlYWtwb2ludCBzZXR0aW5ncyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IHNwYWNlcywgbm90IGRhc2hlcyBvciB1bmRlcnNjb3Jlcy4gUGxlYXNlIHJlcGxhY2UgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBiZXR3ZWVuIHdvcmRzIHdpdGggc3BhY2VzLiBTZXR0aW5ncyB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIHVudGlsIGNoYW5nZWQuXCI7XG4gIH1cbiAgJGJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkYnJlYWtwb2ludCwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRicmVha3BvaW50LWNoYW5nZTogYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYmtwdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cbkBtaXhpbiBia3B0LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlbW92ZSBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59XG5cbkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSBhbmQgdHlwZS1vZihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3ticmVha3BvaW50LWdldChcXCdiYXNlIGZvbnQgc2l6ZVxcJyl9IGlzIG5vdCBzZXQgaW4gdmFsaWQgdW5pdHMgZm9yIGZvbnQgc2l6ZSEnO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcbiAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxNnB4ICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICclJyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdlbScge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTJwdCAqIDFlbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4vLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgbWluL21heCBwYWlyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIHN0cmluZyB2YWx1ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICAnb3JpZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2x1bWlub3NpdHknO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgYnJlYWtwb2ludC1taW4tbWF4KCRpdGVtKSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgaXMgYSBtZWRpYSB0eXBlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAgJ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdicmFpbGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYm9zc2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRoZWxkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWVjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHYnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xuICBAZWFjaCAkbWVkaWEgaW4gJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXMge1xuICAgIEBpZiAoJGZlYXR1cmUgPT0gJG1lZGlhKSBvciAoJGZlYXR1cmUgPT0gJ25vdCAjeyRtZWRpYX0nKSBvciAoJGZlYXR1cmUgPT0gJ29ubHkgI3skbWVkaWF9Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBzdGFuZCBhbG9uZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XG4gICRyZXNvbHV0aW9uczogJ2RldmljZS1waXhlbC1yYXRpbycsICdkcHInO1xuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgICRyZXNvbHV0aW9uczogYXBwZW5kKCRyZXNvbHV0aW9ucywgJ3Jlc29sdXRpb24nKTtcbiAgfVxuXG4gIEBlYWNoICRyZXNvIGluICRyZXNvbHV0aW9ucyB7XG4gICAgQGlmIGluZGV4KCRmZWF0dXJlLCAkcmVzbykgb3IgaW5kZXgoJGZlYXR1cmUsICdtaW4tI3skcmVzb30nKSBvciBpbmRleCgkZmVhdHVyZSwgJ21heC0jeyRyZXNvfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGFyc2VyIFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwicGFyc2Vycy9xdWVyeVwiO1xuQGltcG9ydCBcInBhcnNlcnMvc2luZ2xlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9kb3VibGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3RyaXBsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvcmVzb2x1dGlvblwiO1xuXG4kTWVtby1FeGlzdHM6IGZ1bmN0aW9uLWV4aXN0cyhtZW1vLWdldCkgYW5kIGZ1bmN0aW9uLWV4aXN0cyhtZW1vLXNldCk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBGdW5jdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkcXVlcnksICRjb250ZXh0cy4uLikge1xuICAkcnVuOiB0cnVlO1xuICAkcmV0dXJuOiAoKTtcblxuICAvLyBHcmFiIHRoZSBNZW1vIE91dHB1dCBpZiBNZW1vaXphdGlvbiBjYW4gYmUgYSB0aGluZ1xuICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAkcmV0dXJuOiBtZW1vLWdldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMpO1xuXG4gICAgQGlmICRyZXR1cm4gIT0gbnVsbCB7XG4gICAgICAkcnVuOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRNZW1vLUV4aXN0cyBvciAkcnVuIHtcbiAgICAvLyBJbnRlcm5hbCBWYXJpYWJsZXNcbiAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAkcXVlcnktZmFsbGJhY2s6IGZhbHNlO1xuICAgICRyZXR1cm46ICgpO1xuXG4gICAgLy8gUmVzZXJ2ZSBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkaG9sZGVyLWNvbnRleHQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI7XG4gICAgJGhvbGRlci1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDtcblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG5cbiAgICAvLyBUZXN0IHRvIHNlZSBpZiBpdCdzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3RcbiAgICAkb3ItbGlzdDogaWYobGlzdC1zZXBhcmF0b3IoJHF1ZXJ5KSA9PSAnY29tbWEnLCB0cnVlLCBmYWxzZSk7XG5cblxuICAgIEBpZiAoJG9yLWxpc3QgPT0gZmFsc2UgYW5kIGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gZmFsc2UpIHtcbiAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgICAgICRsYXN0OiBudGgoJHF1ZXJ5LCAkbGVuZ3RoKTtcbiAgICAgICRxdWVyeS1mYWxsYmFjazogYnJlYWtwb2ludC1uby1xdWVyeSgkbGFzdCk7XG5cbiAgICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSB7XG4gICAgICAgICRsZW5ndGg6ICRsZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gdHJ1ZSkge1xuICAgICAgICAkbXE6ICgpO1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJG1xOiBhcHBlbmQoJG1xLCBudGgoJHF1ZXJ5LCAkaSksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJG1xKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJHF1ZXJ5LXN0cmluZzogJHF1ZXJ5LXN0cmluZyArIGlmKCRpID09IDEsICcnLCAnLCAnKSArIGJyZWFrcG9pbnQtcGFyc2UobnRoKCRxdWVyeSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRyZXR1cm46ICgncXVlcnknOiAkcXVlcnktc3RyaW5nLFxuICAgICAgICAnZmFsbGJhY2snOiAkcXVlcnktZmFsbGJhY2ssXG4gICAgICAgICdjb250ZXh0IGhvbGRlcic6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsXG4gICAgICAgICdxdWVyeSBjb3VudCc6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnRcbiAgICApO1xuICAgIEBpZiBsZW5ndGgoJGNvbnRleHRzKSA+IDAgYW5kIG50aCgkY29udGV4dHMsIDEpICE9IGZhbHNlIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICAgICAgfVxuICAgICAgJGNvbnRleHQtbWFwOiAoKTtcbiAgICAgIEBlYWNoICRjb250ZXh0IGluICRjb250ZXh0cyB7XG4gICAgICAgICRjb250ZXh0LW1hcDogbWFwLW1lcmdlKCRjb250ZXh0LW1hcCwgKCRjb250ZXh0OiBicmVha3BvaW50LWdldC1jb250ZXh0KCRjb250ZXh0KSkpO1xuICAgICAgfVxuICAgICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sIChjb250ZXh0OiAkY29udGV4dC1tYXApKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuICAgIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICAgJGhvbGRlcjogbWVtby1zZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzLCAkcmV0dXJuKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2VuZXJhbCBCcmVha3BvaW50IFBhcnNlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpIHtcbiAgLy8gSW5jcmVhc2UgbnVtYmVyIG9mICdhbmQnIHF1ZXJpZXNcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCArIDEgIWdsb2JhbDtcblxuICAvLyBTZXQgdXAgTWVkaWEgVHlwZVxuICAkcXVlcnktcHJpbnQ6ICcnO1xuXG4gICRmb3JjZS1hbGw6ICgoYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykgPT0gdHJ1ZSkgYW5kIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpID09ICdhbGwnKSk7XG4gICRlbXB0eS1tZWRpYTogdHJ1ZTtcbiAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpICE9ICdhbGwnKSB7XG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG4gIH1cblxuXG4gICRxdWVyeS1yZXNvbHV0aW9uOiBmYWxzZTtcblxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XG5cblxuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxuICAkZmlyc3Q6IHRydWU7XG5cbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRmZWF0dXJlKTtcblxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgLy8gRmVhdHVyZSBpcyBjdXJyZW50bHkgYSBsaXN0LCBncmFiIHRoZSBhY3R1YWwgdmFsdWVcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xuXG4gICAgICAvLyBNZWRpYSBUeXBlIG11c3QgYnkgY29udmVudGlvbiBiZSB0aGUgZmlyc3QgaXRlbSwgc28gaXQncyBzYWZlIHRvIGZsYXQgb3ZlcnJpZGUgJHF1ZXJ5LXByaW50LCB3aGljaCByaWdodCBub3cgc2hvdWxkIG9ubHkgYmUgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZVxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xuICAgICAgICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRmZWF0dXJlICE9ICdhbGwnKSB7XG4gICAgICAgICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcbiAgICAgICAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcbiAgICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtZWRpYSwgJHF1ZXJ5LXByaW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgZG91YmxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkgIT0gZmFsc2UpIHtcbiAgICAgICAgJHF1ZXJ5LXJlc29sdXRpb246ICRmZWF0dXJlO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBudWxsO1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxuICAgICAgICAvLyB3ZSBjaGVjayB0byBzZWUgaWYgb25lIGlzIGEgc2luZ2xlLXN0cmluZyB2YWx1ZSxcbiAgICAgICAgLy8gdGhlbiB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xuICAgICAgICAkYmV0YTogbnRoKCRmZWF0dXJlLCAyKTtcbiAgICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYWxwaGEpIG9yIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYmV0YSkge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgdHJpcGxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAoJHF1ZXJ5LXJlc29sdXRpb24gIT0gZmFsc2UpIHtcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBmZWF0dXJlIHRoYXQncyBiZWVuIGRldGVjdGVkIHNvIGZhciBhbmQgYXBwZW5kICdmYWxzZScgdG8gdGhlIHRoZSB2YWx1ZSBsaXN0IHRvIGluY3JlbWVudCB0aGVpciBjb3VudGVyc1xuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XG4gICAgJHYtaG9sZGVyOiAkdjtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgICBAaWYgJGYgPT0gJ21lZGlhJyB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KSB7XG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XG4gICRmZWF0dXJlLWhvbGRlcjogKCk7XG4gICRxdWVyeS1ob2xkZXI6ICgpO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xuICAgIEBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSBvciAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG5cbiAgICAgICRudW1iZXI6ICcnO1xuICAgICAgJHZhbHVlOiAnJztcblxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMik7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxuICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkdmFsdWUpIHtcbiAgICAgICAgQGlmIHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEgbWVkaWEgdHlwZSwgc3BsaXQgdGhlIHF1ZXJ5XG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDIpKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSB7XG4gICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIHN0cmluZ3MgYW5kIG5laXRoZXIgYXJlIHNpbmdsZXMsIHdlIHJvbGwgd2l0aCB0aGF0LlxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XG4gICAgLy8gSWYgd2UndmUgZ290IHRocmVlIGl0ZW1zIGFuZCBub25lIGlzIGEgbGlzdCwgd2UgY2hlY2sgdG8gc2VlXG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDMpKSAhPSAnbGlzdCcge1xuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cbiAgICAgIEBpZiAobm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDMpKSkgYW5kICAoKG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAzKSkpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gbGV0J3MgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBpdGVtIGlzIGEgbWVkaWEgdHlwZVxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAyKSwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGZlYXR1cmUgdGhhdCBjYW4gc3RhbmQgYWxvbmUsIHdlIGxldCBpdFxuICBAaWYgKGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkpIHtcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcbiAgICAvLyBTZXQgQ29udGV4dFxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkZmVhdHVyZSk7XG4gIH1cbiAgLy8gSWYgaXQncyBub3QgYSBzdGFuZCBhbG9uZSBmZWF0dXJlLCB3ZSBwYXNzIGl0IG9mZiB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLlxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICcoJyArICRwYXJzZWQgKyAnKSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJyk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGRlZmF1bHQsICRmZWF0dXJlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7YnJlYWtwb2ludC10by1iYXNlLWVtKCRmZWF0dXJlKX0nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcbkBpbXBvcnQgXCJkb3VibGUvZG91YmxlLXN0cmluZ1wiO1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XG4gICRzZWNvbmQ6IG50aCgkZmVhdHVyZSwgMik7XG5cbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdudW1iZXInIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIHRoZXkgYXJlIGJvdGggc3RyaW5ncywgd2Ugc2VuZCBpdCB0aHJvdWdoIHRoZSBzdHJpbmcgcGFyc2VyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpciwgd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgcGFpcicpO1xuICAkbWluOiAnJztcbiAgJG1heDogJyc7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZGVmYXVsdH0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxuICBAaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmaXJzdCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkc2Vjb25kKSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiTmVpdGhlciAjeyRmaXJzdH0gbm9yICN7JHNlY29uZH0gaXMgYSB2YWxpZCBtZWRpYSBxdWVyeSBuYW1lLlwiO1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn0iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJ0cmlwbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBzZXBhcmF0ZSB0aGUgc3RyaW5nIGZlYXR1cmVzIGZyb20gdGhlIHZhbHVlIG51bWJlcnNcbiAgJHN0cmluZzogbnVsbDtcbiAgJG51bWJlcnM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJGZlYXR1cmUge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IHN0cmluZyB7XG4gICAgICAkc3RyaW5nOiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgdHlwZS1vZigkbnVtYmVycykgPT0gJ251bGwnIHtcbiAgICAgICAgJG51bWJlcnM6ICR2YWw7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXJzOiBhcHBlbmQoJG51bWJlcnMsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJHN0cmluZywgbnRoKCRudW1iZXJzLCAxKSwgbnRoKCRudW1iZXJzLCAyKSk7XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcblxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGZlYXR1cmV9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGZlYXR1cmV9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGZlYXR1cmV9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRmZWF0dXJlfTogI3skbWF4fSknO1xufVxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIGFuZCAkcXVlcnktcmVzb2x1dGlvbiB7XG4gICAgJHJlc29sdXRpb25zOiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHF1ZXJ5LXJlc29sdXRpb24pO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbnMpO1xuICAgICRxdWVyeS1ob2xkZXI6ICcnO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICRxdWVyeTogJyN7JHF1ZXJ5LXByaW50fSAjeyRsZWFkZXJ9I3tudGgoJHJlc29sdXRpb25zLCAkaSl9JztcbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJHF1ZXJ5O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAnI3skcXVlcnktaG9sZGVyfSwgI3skcXVlcnl9JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFJldHVybiB3aXRoIGF0dGFjaGVkIHJlc29sdXRpb25cbiAgICBAcmV0dXJuICRxdWVyeS1wcmludDtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcmVzb2x1dGlvbikge1xuICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb24pO1xuXG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgICRmZWF0dXJlOiAnJztcbiAgICAkdmFsdWU6ICcnO1xuXG4gICAgLy8gRmluZCB3aGljaCBpcyBudW1iZXJcbiAgICBAaWYgdHlwZS1vZihudGgoJHJlc29sdXRpb24sIDEpKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAyKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgbWluL21heC9zdGFuZGFyZFxuICAgIEBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21pbi1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtaW4tJztcbiAgICB9XG4gICAgQGVsc2UgaWYgaW5kZXgoJHJlc29sdXRpb24sICdtYXgtcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWF4LSc7XG4gICAgfVxuXG4gICAgJHN0YW5kYXJkOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWV9KSc7XG5cbiAgICAvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGRwcHgsXG4gICAgQGlmIHVuaXQoJHZhbHVlKSAhPSAnZHBweCcge1xuICAgICAgJGJhc2U6IDk2ZHBpO1xuICAgICAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZHBjbScge1xuICAgICAgICAkYmFzZTogMjQzLjg0ZHBjbTtcbiAgICAgIH1cbiAgICAgIC8vIFdyaXRlIG91dCBmZWF0dXJlIHRlc3RzXG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkZmFsbGJhY2s6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZSAvIDFkcHB4ICogOTZkcGl9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkZmFsbGJhY2ssIHNwYWNlKTtcbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW5vLXF1ZXJ5KCRxdWVyeSkge1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09ICdsaXN0JyB7XG4gICAgJGtleXdvcmQ6IG50aCgkcXVlcnksIDEpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGtleXdvcmQpID09ICdzdHJpbmcnIGFuZCAoJGtleXdvcmQgPT0gJ25vLXF1ZXJ5JyBvciAka2V5d29yZCA9PSAnbm8gcXVlcnknIG9yICRrZXl3b3JkID09ICdmYWxsYmFjaycpIHtcbiAgICAgIEByZXR1cm4gbnRoKCRxdWVyeSwgMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgdGhlIEJyZWFrcG9pbnRzIHZhcmlhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4kQlJFQUtQT0lOVFM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA+IDAgYW5kIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtZXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGFkZCBicmVha3BvaW50cyBmb3IgcmVzcG9uZC10by4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KClgIHRvIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgpYC4gVGhlIGBhZGQtYnJlYWtwb2ludCgpYCBmdW5jdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIjtcbiAgICAkQlJFQUtQT0lOVFM6ICRicmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRicmVha3BvaW50czogKCkgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRCUkVBS1BPSU5UUykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBgcmVzcG9uZC10b2AgZXhwZWN0cyBhIG1hcC4gUGxlYXNlIGNoZWNrIHRoZSB2YWx1ZSBvZiAkQlJFQUtQT0lOVFMgdmFyaWFibGUuXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdClgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBBZGQgQnJlYWtwb2ludCB0byBCcmVha3BvaW50c1xuLy8gVE9ETzogUmVtb3ZlIGZ1bmN0aW9uIGluIG5leHQgcmVsZWFzZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPT0gMCB7XG4gICAgQHJldHVybiAkb3V0cHV0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgIEByZXR1cm4gJGJyZWFrcG9pbnRzO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCRicmVha3BvaW50cywgJG91dHB1dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICAkQlJFQUtQT0lOVFM6ICRvdXRwdXQgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICAkQlJFQUtQT0lOVFM6ICRCUkVBS1BPSU5UUyAhZ2xvYmFsO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgICRCUkVBS1BPSU5UUzogbWFwLW1lcmdlKCRCUkVBS1BPSU5UUywgJG91dHB1dCkgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGdldC1icmVha3BvaW50KCRuYW1lOiBmYWxzZSkge1xuICBAaWYgJG5hbWUgPT0gZmFsc2Uge1xuICAgIEByZXR1cm4gJEJSRUFLUE9JTlRTO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkbmFtZSk7XG4gIH1cbn1cbiIsIkBtaXhpbiBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZyB7XG4gICRsZWdhY3lWYXJzOiAoXG4gICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXG4gICAgJ2RlZmF1bHQtZmVhdHVyZSc6ICdkZWZhdWx0IGZlYXR1cmUnLFxuICAgICdmb3JjZS1tZWRpYS1hbGwnOiAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLFxuICAgICd0by1lbXMnOiAndG8gZW1zJyxcbiAgICAncmVzb2x1dGlvbnMnOiAndHJhbnNmb3JtIHJlc29sdXRpb25zJyxcbiAgICAnbm8tcXVlcmllcyc6ICdubyBxdWVyaWVzJyxcbiAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXG4gICAgJ2Jhc2UtZm9udC1zaXplJzogJ2Jhc2UgZm9udCBzaXplJyxcbiAgICAnbGVnYWN5LXN5bnRheCc6ICdsZWdhY3kgc3ludGF4J1xuICApO1xuXG4gIEBlYWNoICRsZWdhY3ksICRuZXcgaW4gJGxlZ2FjeVZhcnMge1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XG4gICAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGNoYW5nZSBzZXR0aW5ncyBmb3IgQnJlYWtwb2ludC4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludC0jeyRsZWdhY3l9OiB7e3NldHRpbmd9fWAgdG8gYEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCcjeyRuZXd9Jywge3tzZXR0aW5nfX0pYC4gVmFyaWFibGUgc2V0dGluZ3MsIGFzIHdlbGwgYXMgdGhpcyB3YXJuaW5nIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgfVxuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBIYW5kIGNvcnJlY3QgZWFjaCBzZXR0aW5nXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgbWVkaWEnLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgZmVhdHVyZScsICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsJykgYW5kICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCAhPSBicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJywgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC10by1lbXMnKSBhbmQgJGJyZWFrcG9pbnQtdG8tZW1zICE9IGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsICRicmVha3BvaW50LXRvLWVtcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtcmVzb2x1dGlvbnMnKSBhbmQgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgIT0gYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJywgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJpZXMnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcmllcycsICRicmVha3BvaW50LW5vLXF1ZXJpZXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcnkgZmFsbGJhY2tzJywgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZScpIGFuZCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSAhPSBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2Jhc2UgZm9udCBzaXplJywgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWxlZ2FjeS1zeW50YXgnKSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCAhPSBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbGVnYWN5IHN5bnRheCcsICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXgpO1xuICB9XG59IiwiLmVsZW1lbnRvci13aWRnZXQtdGhlbWUtcG9zdC1jb250ZW50IHtcbiAgICA+IC5lbGVtZW50b3Itd2lkZ2V0LWNvbnRhaW5lciB7XG5cbiAgICAgICAgPiAqOm5vdCguZWxlbWVudG9yKTpub3QoLmFsaWdud2lkZSk6bm90KC5hbGlnbmZ1bGwpIHtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC10YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAud3AtYmxvY2stc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ud3AtYmxvY2stZ3JvdXAuaGFzLWJhY2tncm91bmQge1xuICAgIHBhZGRpbmc6IDFyZW07XG59XG4ud3AtYmxvY2staW1hZ2Uge1xuICAgIG1hcmdpbjogMDtcbn1cbiIsIi5hdXgtYnVzMi1zbGlkZXItc2Nyb2xsLWFycm93cyB7XG4gICAgYW5pbWF0aW9uOiBib3VuY2luZy1hcnJvd3MgMnMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uYXV4LWJ1czItc2xpZGVyLWNvbnRyb2xlci1udW1iZXJzIHtcblxuICAgIHdpZHRoOiAgICAgICAxLjc1ZW07XG4gICAgcGFkZGluZzogICAgIDAgOHB4O1xuICAgIG1hcmdpbjogICAgICAwIDRweDtcbiAgICBjb2xvcjogICAgICAgcmdiYSgyNTUsMjU1LDI1NSwgMC40NSk7XG4gICAgZm9udC1zaXplOiAgIDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LWFsaWduOiAgY2VudGVyO1xuXG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRTAyMzI4O1xuICAgIH1cbn1cblxuLnVuaS1zbGlkZXIge1xuXG4gICAgJl9fYmFjaywgJl9fb3ZlcmxheSB7XG5cbiAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgZmx1aWQoaGVpZ2h0LCAxMDBweCwgMzIwcHgsIDcwMHB4LCAxOTAwcHgpO1xuICAgIH1cblxuICAgICZfX2JhY2sge1xuXG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHJpZ2h0OiAgIDA7XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG5cbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgcmlnaHQ6ICAgNDBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGgyIHtcblxuICAgICAgICBAaW5jbHVkZSBmbHVpZChmb250LXNpemUsIDIwcHgsIDMyMHB4LCA0OHB4LCAxNDAwcHgpO1xuICAgICAgICBAaW5jbHVkZSBmbHVpZChsaW5lLWhlaWdodCwgMjZweCwgMzIwcHgsIDU0cHgsIDE0MDBweCk7XG5cbiAgICAgICAgbWFyZ2luOiAgICAgIDAgMCAuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG4gICAgaDMge1xuXG4gICAgICAgIEBpbmNsdWRlIGZsdWlkKGZvbnQtc2l6ZSwgMTZweCwgMzIwcHgsIDM4cHgsIDE0MDBweCk7XG4gICAgICAgIEBpbmNsdWRlIGZsdWlkKGxpbmUtaGVpZ2h0LCAxOHB4LCAzMjBweCwgNDJweCwgMTQwMHB4KTtcbiAgICB9XG4gICAgaDQge1xuXG4gICAgICAgIEBpbmNsdWRlIGZsdWlkKGZvbnQtc2l6ZSwgMTBweCwgMzIwcHgsIDE4cHgsIDE0MDBweCk7XG5cbiAgICAgICAgcGFkZGluZzogICAxcmVtIDAgMDtcbiAgICAgICAgbWFyZ2luOiAgICAwIDAgLjVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiA3ODJweCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kaXZpZGVyIHtcblxuICAgICAgICBtYXJnaW46IC41cmVtIDA7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kKG1pbi13aWR0aDogIDEwMjNweCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcblxuICAgICAgICBAaW5jbHVkZSBmbHVpZChmb250LXNpemUsIDEzcHgsIDMyMHB4LCAxOHB4LCAxNDAwcHgpO1xuICAgICAgICBAaW5jbHVkZSBmbHVpZChsaW5lLWhlaWdodCwgMTZweCwgMzIwcHgsIDI0cHgsIDE0MDBweCk7XG5cbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZChtaW4td2lkdGg6ICAxMDAwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXMtYnRuLWNvbnRhaW5lciB7XG5cbiAgICAgICAgd2lkdGg6ICBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuXG4gICAgICAgIHRvcDogICAgICAgICBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6ICAgICAgICAuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBib3R0b206ICAgICAgNXJlbSAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gICAgICAgICAgICBib3R0b206IDlyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG5cbiAgICAgICAgcGFkZGluZzogLjVyZW0gMXJlbTtcbiAgICAgICAgbWFyZ2luOiAgLjVyZW0gMCAxcmVtO1xuICAgICAgICBjb2xvcjogICB3aGl0ZTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IC43NXJlbSAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zb2NpYWwge1xuXG4gICAgICAgIEBpbmNsdWRlIGZsdWlkKGZvbnQtc2l6ZSwgMTJweCwgMzIwcHgsIDE4cHgsIDE0MDBweCk7XG5cbiAgICAgICAgdG9wOiAgICAgICAgIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbGVmdDogICAgICAgIC41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvdHRvbTogICAgICA0cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogICAgICAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXMtYnRuLWNvbnRhaW5lciwgJl9fc29jaWFsIHtcblxuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgIGxlZnQ6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZsdWlkKGxlZnQsIDQwcHgsIDEwMDBweCwgMzAwcHgsIDE5MjBweCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLm1zLXZpZXcsIC5tcy1zbGlkZSB7XG5cbiAgICAgICAgQGluY2x1ZGUgZmx1aWQoaGVpZ2h0LCA0MTBweCwgMzIwcHgsIDcwMHB4LCAxMjAwcHgsIHRydWUpO1xuICAgIH1cblxuXG4gICAgLm1zLXNsaWRlLWNvbnRhaW5lciB7XG5cbiAgICAgICAgLm1zLWFuaW0tbGF5ZXJzIHtcblxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCA2MHB4IC41cmVtO1xuXG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsdWlkKHdpZHRoLCAgMTQwcHgsIDMyMHB4LCA3NjBweCwgMTkwMHB4KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbHVpZChoZWlnaHQsIDEwNXB4LCAzMjBweCwgNzIwcHgsIDE5MDBweCk7XG5cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogICByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAgICAxMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAgICBibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogICAgICByaWdodDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAgICAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZmx1aWQocGFkZGluZy1sZWZ0LCA0MHB4LCAxMDAwcHgsIDMwMHB4LCAxOTIwcHgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmx1aWQocGFkZGluZy10b3AsICA0MHB4LCAxMDAwcHgsIDgwcHgsIDE5MjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXMtbGF5ZXI6bm90KC51bmktc2xpZGVyX19iYWNrKTpub3QoLnVuaS1zbGlkZXJfX292ZXJsYXkpOm5vdCgudW5pLXNsaWRlcl9fc29jaWFsKTpub3QoYSkge1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAgMjtcbiAgICAgICAgICAgIHRvcDogICAgICAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsZWZ0OiAgICAgMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1zLW92ZXJsYXktbGF5ZXJzIHtcblxuICAgICAgICAuYXV4LWJ1czItc2xpZGVyLWNvbnRyb2xlciB7XG5cbiAgICAgICAgICAgIHRvcDogICAgYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogICAuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm90dG9tOiAuNzVyZW0gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICByaWdodDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogN3JlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZChtaW4td2lkdGg6IDEwMDBweCkge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZmx1aWQocmlnaHQsIDQwMHB4LCAxMDAwcHgsIDc2MHB4LCAxOTAwcHgsIHRydWUpO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcblxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAgYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogICBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogICAgIHZhcigtLWUtZ2xvYmFsLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgZm9udDogICAgICA5MDAgMjhweCAnRm9udCBBd2Vzb21lIDUgRnJlZSc7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICAgICAtNTVweDtcbiAgICAgICAgICAgICAgICB0b3A6ICAgICAgIDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogICAnXFxmMTAzJztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBib3VuY2luZy1hcnJvd3MgMnMgaW5maW5pdGUgbGluZWFyO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHRvcDogM3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYXV4LWJ1czItc2xpZGVyLWFjdGl2ZS1jb250cm9sZXIge1xuXG4gICAgICAgICAgICB0b3A6ICAgIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvdHRvbTogNzRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdXgtYnVzMi1zbGlkZXItc2Nyb2xsLWFycm93cyB7XG5cbiAgICAgICAgICAgIHRvcDogICAgICAgICBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICByaWdodDogICAgICAgLjVyZW07XG4gICAgICAgICAgICBib3R0b206ICAgICAgMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogICAgICAgIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweDtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogNHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnVuaXJlc28taG9tZS1uZXdzIHtcblxuICAgIC5lbGVtZW50b3ItY29sdW1uIHtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcblxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVsZW1lbnRvci1wb3N0cyB7XG5cbiAgICAuZWxlbWVudG9yLXBvc3Qge1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmX19jYXJkIHtcblxuICAgICAgICAgICAgcG9zaXRpb246ICAgICAgIHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICAgIDMzLjMzMyU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcblxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcblxuICAgICAgICAgICAgICAgIC5lbGVtZW50b3ItcG9zdCB7XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fdGV4dCwgJl9fbWV0YS1kYXRhIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAgICAgICAgMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLXNlY29uZGFyeSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYsIHAsIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICZfX3RpdGxlOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbF9fbGluayB7XG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogICAgICAwO1xuICAgICAgICAgICAgcmlnaHQ6ICAgIDA7XG4gICAgICAgICAgICBsZWZ0OiAgICAgMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFkZ2Uge1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQsICZfX21ldGEtZGF0YSB7XG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiAgIHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAgICAgICAgMDtcbiAgICAgICAgICAgIHdpZHRoOiAgICAgIDg1JTtcbiAgICAgICAgICAgIG1hcmdpbjogICAgIDAgYXV0bztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLDAsMCwuMSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgLjVzIGVhc2UsIGJhY2tncm91bmQgLjI1cyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG5cbiAgICAgICAgICAgIG9yZGVyOiAgICAgICAgIDM7XG4gICAgICAgICAgICB6LWluZGV4OiAgICAgICAzO1xuICAgICAgICAgICAgbWFyZ2luOiAgICAgICAgMCBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19leGNlcnB0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXRhLWRhdGEge1xuXG4gICAgICAgICAgICBkaXNwbGF5OiAgICAgICAgIGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogIGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgb3JkZXI6ICAgICAgICAgICAyO1xuICAgICAgICAgICAgei1pbmRleDogICAgICAgICAyO1xuICAgICAgICAgICAgYm9yZGVyOiAgICAgICAgICBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogICA4cHggOHB4IDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21ldGEtZGF0YSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDQwcHggOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDE2cHggNDBweCA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogICAgICAgIHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogICAgICAgICBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246ICBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAgOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogICAwO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAgICAgICBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogICAgICBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAgICAgICAgICAtMTZweDtcbiAgICAgICAgICAgICAgICB0b3A6ICAgICAgICAgICA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAgICAgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogICAgICAgICA2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAgICAgICAgNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAgICB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICAgICAgICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmV3cy0tcmVkIHtcblxuICAgIC5lbGVtZW50b3ItcG9zdHMge1xuXG4gICAgICAgIC5lbGVtZW50b3ItcG9zdCB7XG5cbiAgICAgICAgICAgICZfX2NhcmQge1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG5cbiAgICAgICAgICAgICAgICAgICAgLmVsZW1lbnRvci1wb3N0IHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJl9fdGV4dCwgJl9fbWV0YS1kYXRhIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbiRuYXYtbGluZS1oZWlnaHQ6IDEuNGVtO1xuJG5hdi1kZWNvLW9mZnNldDogLjhlbTtcblxuLmVsZW1lbnRvci13aWRnZXQtYmR0LW5hdmJhciB7XG5cbiAgICAuYmR0LW5hdmJhci1uYXYge1xuXG4gICAgICAgID4gbGkge1xuXG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgID4gYSB7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAgICAgICAgYmxvY2s7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogICAgIDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogICAgICAgIDAgMXJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogICAgICAgICAgdmFyKC0tZS1nbG9iYWwtY29sb3ItcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgZm9udDogICAgICAgICAgIDFyZW0vI3skbmF2LWxpbmUtaGVpZ2h0fSB2YXIoLS1lLWdsb2JhbC10eXBvZ3JhcGh5LXByaW1hcnktZm9udC1mYW1pbHkpO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC1tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogICAgICAgYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAgICAgIGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAgICAgICAgICA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogICAgICAgICAgIGNhbGMoMTAwJSAtIDRweCk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogICAgIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAgICAgICAgIDZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAgICAgICAgNnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICAgIHZhcigtLWUtZ2xvYmFsLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICAgICAgICcnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICAgICAgIGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAgICAkbmF2LWRlY28tb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogICAtMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAgLTFyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAgICAgICAnJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcblxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZS1nbG9iYWwtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYmR0LWFjdGl2ZSB7XG5cbiAgICAgICAgICAgICAgICA+IGEge1xuXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuXG4gICAgICAgICAgICBkaXNwbGF5OiAgIGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgID4gbGkge1xuXG4gICAgICAgICAgICAgICAgd2lkdGg6ICAgICAgICAgNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogICAgY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4mLmFyY2hpdmUuY2F0ZWdvcnksICYuYXJjaGl2ZS50YWcge1xuXG4gICAgLmVsZW1lbnRvci13aWRnZXQtYmR0LW5hdmJhciB7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcblxuICAgICAgICAgICAgZGlzcGxheTogICAgICAgYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogICAgICBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAgICAgICAgIDFyZW07XG4gICAgICAgICAgICBoZWlnaHQ6ICAgICAgICBjYWxjKCN7JG5hdi1saW5lLWhlaWdodCArICRuYXYtZGVjby1vZmZzZXR9ICsgMXB4KTtcbiAgICAgICAgICAgIGJvdHRvbTogICAgICAgIDA7XG4gICAgICAgICAgICBsZWZ0OiAgICAgICAgICAtMXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICAgMXB4IHNvbGlkIHZhcigtLWUtZ2xvYmFsLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAuNXJlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICAgICAgICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJi5lbGVtZW50b3ItcGFnZS0zMDg0MSB7XG5cbiAgICAuYXV4LWZvbGQge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4uYXV4LXdpZGdldC1sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uZWxlbWVudG9yLXdpZGdldC1hdXhfYnJlYWRjcnVtYnMge1xuXG4gICAgcGFkZGluZzogMCAuNXJlbTtcbiAgICBtYXJnaW46IDJyZW0gMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLXRhYmxldCkge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC1tb2JpbGUpIHtcbiAgICAgICAgbWFyZ2luOiAuNXJlbSAwO1xuICAgIH1cbn1cblxuLmF1eC1icmVhZGNydW1icyB7XG5cbiAgICBtYXJnaW46IDA7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV4LWJyZWFkY3J1bWItc2VwIHtcblxuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtdGFibGV0KSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwLW1vYmlsZSkge1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYXV4LWVsZW1lbnRvci1oZWFkZXIuYXV4LXN0aWNreSAuZWxlbWVudG9yLXNlY3Rpb24td3JhcCA+IC5lbGVtZW50b3Itc2VjdGlvbiB7XG5cbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLnBhZ2UtdGl0bGUtc2VjdGlvbiB7XG5cbiAgICAucGFnZS1oZWFkZXIge1xuXG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59XG5cbi5wYWdlLWhlYWRlciB7XG5cbiAgICA+IC5hdXgtY29udGFpbmVyIHtcblxuICAgICAgICBtYXgtd2lkdGg6ICAgICAxMTQwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogIDEwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgfVxufVxuXG5cblxuLmVsZW1lbnRvci13aWRnZXQtdGhlbWUtcG9zdC1jb250ZW50IHtcblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICB9XG5cbiAgICAuYmR0LW5hdmJhci1uYXYge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbn1cblxuLmVsZW1lbnRvci13aWRnZXQtdGhlbWUtYXJjaGl2ZS10aXRsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbn1cblxuJi5hcmNoaXZlLmNhdGVnb3J5LCAmLmFyY2hpdmUudGFnIHtcblxuICAgIC5lbGVtZW50b3Itd2lkZ2V0LXRoZW1lLWFyY2hpdmUtdGl0bGUge1xuXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAgMDtcblxuICAgICAgICAmOmJlZm9yZSB7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6ICAgICAgIGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246ICAgICAgYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogICAgICAgICAwO1xuICAgICAgICAgICAgdG9wOiAgICAgICAgICAgMS41ZW07XG4gICAgICAgICAgICBib3R0b206ICAgICAgICAwO1xuICAgICAgICAgICAgbGVmdDogICAgICAgICAgLTFyZW07XG4gICAgICAgICAgICBib3JkZXItbGVmdDogICAxcHggc29saWQgdmFyKC0tZS1nbG9iYWwtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICAgICAgICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6ICAgICAgIGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246ICAgICAgYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAgICAgICAgICBjYWxjKC0xcmVtICsgMXB4KTtcbiAgICAgICAgICAgIHRvcDogICAgICAgICAgIDEuMjVlbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogICAgIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogICAgICAgICA2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6ICAgICAgICA2cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAgICB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgY29udGVudDogICAgICAgJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLndwLWJsb2NrLXNlcGFyYXRvciB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAzcmVtIDAgNnJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZS1nbG9iYWwtY29sb3ItcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC10YWJsZXQpIHtcbiAgICAgICAgbWFyZ2luOiAycmVtIDAgNHJlbTtcbiAgICB9O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtbW9iaWxlKSB7XG5cbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG5cbiAgICAgICAgZGlzcGxheTogICAgICAgYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiAgICAgIGFic29sdXRlO1xuICAgICAgICB0b3A6ICAgICAgICAgICAtMnB4O1xuICAgICAgICB0cmFuc2Zvcm06ICAgICB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB3aWR0aDogICAgICAgICA2cHg7XG4gICAgICAgIGhlaWdodDogICAgICAgIDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAgICB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICBjb250ZW50OiAgICAgICAnJztcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICByaWdodDogLTRweDtcbiAgICB9XG59XG4iLCIud3AtYmxvY2stZ2V0d2lkLWltYWdlcy1zbGlkZXIge1xuXG4gICAgaGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgbWF4LWhlaWdodDogNzAwcHg7XG5cbiAgICAmX193cmFwcGVyLCAuc2xpY2stbGlzdCwgLnNsaWNrLXRyYWNrLCAmX19pdGVtLCBmaWd1cmUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGZpZ3VyZSB7XG5cbiAgICAgICAgZGlzcGxheTogICAgICAgIGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiAgICBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAgICAgICAgICAxMDAlO1xuICAgIH1cblxuICAgIGltZyB7XG5cbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgZmxleDogICAgICAgMTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcblxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1lLWdsb2JhbC1jb2xvci1wcmltYXJ5KTtcblxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuXG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDVweCAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAxMDI0cHgpIHtcblxuICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaGFzLWRvdHMtb3V0c2lkZSB7XG5cbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgYm90dG9tOiAtNDBweDtcbiAgICAgICAgfVxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIH1cblxuICAgICYuaGFzLWFycm93cy1pbnNpZGUge1xuICAgICAgICAuc2xpY2stcHJldiB7XG4gICAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgfVxuICAgICAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICByaWdodDogLTEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1hcnJvdyB7XG5cbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICY6YmVmb3JlIHtcblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBGcmVlJztcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNsaWNrLXByZXYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjA1Myc7XG4gICAgfVxufVxuLnNsaWNrLW5leHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjA1NCc7XG4gICAgfVxufVxuXG4uc2xpY2stZG90cyB7XG5cbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuXG4gICAgICAgICAgICB3aWR0aDogN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJ0YWJsZS5kYXRhVGFibGUuZHRyLWlubGluZS5jb2xsYXBzZWQgPiB0Ym9keSA+IHRyIHtcblxuICAgICZbcm9sZT1cInJvd1wiXSAge1xuXG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuXG4gICAgICAgICAgICAmLmR0ci1jb250cm9sIHtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAgICAxNXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogICA1NXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6ICAgICAgICAgICAgIDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogICAgICAgIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAgICAgICAgICAgIDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogICAgICAgICAgIDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogICAgICAgICAgIDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogICAgICAgICAgIG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICAgIDA7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICAgICAgIG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICBmb250OiAgICAgICAgICAgICBib2xkIDFyZW0gdmFyKC0tZS1nbG9iYWwtdHlwb2dyYXBoeS1wcmltYXJ5LWZvbnQtZmFtaWx5KTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICAgICAgMjVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnBhcmVudCB7XG5cbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG5cbiAgICAgICAgICAgICYuZHRyLWNvbnRyb2wge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZS1nbG9iYWwtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZHRyLWRldGFpbHMge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbn1cbiIsIi53cC1ibG9jay1nZXR3aWQtY29udGVudC10aW1lbGluZSB7XG5cbiAgICAmLWl0ZW0ge1xuXG4gICAgICAgICZfX2NvbnRlbnQtd3JhcHBlciB7XG5cbiAgICAgICAgICAgIGgzIHtcblxuICAgICAgICAgICAgICAgIGZsb2F0OiAgICAgICAgIGxlZnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogICAgICAgMCAuNXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICAgICAgICAwIDFyZW0gMCAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICAgIHZhcigtLWUtZ2xvYmFsLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICAgICAgICAgd2hpdGU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAgICAgMXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogICAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMiB7XG5cbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogICAgaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogICAgICAwLjVyZW0gMCAycmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogICAxLjRyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wb2ludC1jb250ZW50IHtcblxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2RlZTNlNjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIC53cC1ibG9jay1nZXR3aWQtY29udGVudC10aW1lbGluZSB7XG4gICAgICAgICAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJl9fcG9pbnQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1lLWdsb2JhbC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFRSCxBcUJUUSxhckJTSyxDcUJaYixvQ0FBb0MsR0FDOUIsMkJBQTJCLEdBRXZCLENBQUMsQUFBQSxJQUFLLENBQUEsVUFBVSxDQUFDLElBQUssQ0FBQSxVQUFVLENBQUMsSUFBSyxDQUFBLFVBQVUsRUFBRTtFQUVoRCxTQUFTLEVBQUUsS0FBSztFQUNoQixXQUFXLEVBQUUsSUFBSTtFQUNqQixZQUFZLEVBQUUsSUFBSSxHQUtyQjtFbkJvREwsTUFBTSxFQUFHLFNBQVMsRUFBRSxNQUFNO0lGcEQ5QixBcUJUUSxhckJTSyxDcUJaYixvQ0FBb0MsR0FDOUIsMkJBQTJCLEdBRXZCLENBQUMsQUFBQSxJQUFLLENBQUEsVUFBVSxDQUFDLElBQUssQ0FBQSxVQUFVLENBQUMsSUFBSyxDQUFBLFVBQVUsRUFBRTtNQU81QyxTQUFTLEVBQUUsS0FBSyxHQUV2Qjs7QXJCQVQsQXFCRVEsYXJCRkssQ3FCWmIsb0NBQW9DLEdBQzlCLDJC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 */
