@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.4.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/**
 * Sprite settings
 */
/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.slide-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); }

.slide-out-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%); }

.slide-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); }

.slide-out-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%); }

.fade-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 0;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 1;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  -webkit-transition-duration: 750ms !important;
          transition-duration: 750ms !important; }

.fast {
  -webkit-transition-duration: 250ms !important;
          transition-duration: 250ms !important; }

.linear {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important; }

.ease {
  -webkit-transition-timing-function: ease !important;
          transition-timing-function: ease !important; }

.ease-in {
  -webkit-transition-timing-function: ease-in !important;
          transition-timing-function: ease-in !important; }

.ease-out {
  -webkit-transition-timing-function: ease-out !important;
          transition-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-transition-timing-function: ease-in-out !important;
          transition-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-transition-delay: 300ms !important;
          transition-delay: 300ms !important; }

.long-delay {
  -webkit-transition-delay: 700ms !important;
          transition-delay: 700ms !important; }

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7; }

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.spin-ccw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn); } }

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg; }

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms; }

.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite; }

.slow {
  -webkit-animation-duration: 750ms !important;
          animation-duration: 750ms !important; }

.fast {
  -webkit-animation-duration: 250ms !important;
          animation-duration: 250ms !important; }

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important; }

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important; }

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
          animation-timing-function: ease-in !important; }

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
          animation-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
          animation-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-animation-delay: 300ms !important;
          animation-delay: 300ms !important; }

.long-delay {
  -webkit-animation-delay: 700ms !important;
          animation-delay: 700ms !important; }

/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

/* Sections
       ========================================================================== */
/**
     * Remove the margin in all browsers (opinionated).
     */
body {
  margin: 0; }

/**
     * Add the correct display in IE 9-.
     */
article,
aside,
footer,
header,
nav,
section {
  display: block; }

/**
     * Correct the font size and margin on `h1` elements within `section` and
     * `article` contexts in Chrome, Firefox, and Safari.
     */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
figcaption,
figure {
  display: block; }

/**
     * Add the correct margin in IE 8.
     */
figure {
  margin: 1em 40px; }

/**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
     * Add the correct display in IE.
     */
main {
  display: block; }

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/* Links
       ========================================================================== */
/**
     * 1. Remove the gray background on active links in IE 10.
     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
     */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */
a:active,
a:hover {
  outline-width: 0; }

/* Text-level semantics
       ========================================================================== */
/**
     * 1. Remove the bottom border in Firefox 39-.
     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */ }

/**
     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
     */
b,
strong {
  font-weight: inherit; }

/**
     * Add the correct font weight in Chrome, Edge, and Safari.
     */
b,
strong {
  font-weight: bolder; }

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
     * Add the correct font style in Android 4.3-.
     */
dfn {
  font-style: italic; }

/**
     * Add the correct background and color in IE 9-.
     */
mark {
  background-color: #ff0;
  color: #000; }

/**
     * Add the correct font size in all browsers.
     */
small {
  font-size: 80%; }

/**
     * Prevent `sub` and `sup` elements from affecting the line height in
     * all browsers.
     */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
audio,
video {
  display: inline-block; }

/**
     * Add the correct display in iOS 4-7.
     */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
     * Remove the border on images inside links in IE 10-.
     */
img {
  border-style: none; }

/**
     * Hide the overflow in IE.
     */
svg:not(:root) {
  overflow: hidden; }

/* Forms
       ========================================================================== */
/**
     * 1. Change the font styles in all browsers (opinionated).
     * 2. Remove the margin in Firefox and Safari.
     */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
     * Show the overflow in IE.
     */
button {
  overflow: visible; }

/**
     * Remove the inheritance of text transform in Edge, Firefox, and IE.
     * 1. Remove the inheritance of text transform in Firefox.
     */
button,
select {
  /* 1 */
  text-transform: none; }

/**
     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
     *    controls in Android 4.
     * 2. Correct the inability to style clickable types in iOS and Safari.
     */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */ }
  button::-moz-focus-inner,
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0; }
  button:-moz-focusring,
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText; }

/**
     * Show the overflow in Edge.
     */
input {
  overflow: visible; }

/**
     * 1. Add the correct box sizing in IE 10-.
     * 2. Remove the padding in IE 10-.
     */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
     * Correct the cursor style of increment and decrement buttons in Chrome.
     */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
       */ }
  [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none; }

/**
     * 1. Correct the inability to style clickable types in iOS and Safari.
     * 2. Change font properties to `inherit` in Safari.
     */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */ }

/**
     * 1. Add the correct display in IE 9-.
     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
     * Remove the default vertical scrollbar in IE.
     */
textarea {
  overflow: auto; }

/* Interactive
       ========================================================================== */
/*
     * Add the correct display in Edge, IE, and Firefox.
     */
details {
  display: block; }

/*
     * Add the correct display in all browsers.
     */
summary {
  display: list-item; }

/*
     * Add the correct display in IE 9-.
     */
menu {
  display: block; }

/* Scripting
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
canvas {
  display: inline-block; }

/**
     * Add the correct display in IE.
     */
template {
  display: none; }

/* Hidden
       ========================================================================== */
/**
     * Add the correct display in IE 10-.
     */
[hidden] {
  display: none; }

.foundation-mq {
  font-family: "small=26.25em&medium=48em&tablet=60em&large=64.0625em&xlarge=75em&xxlarge=90em"; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%; }

*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "futura-pt", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' '; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  @media print, screen and (min-width: 26.25em) {
    .row .row {
      margin-right: -0.3125rem;
      margin-left: -0.3125rem; } }
  @media print, screen and (min-width: 48em) {
    .row .row {
      margin-right: -0.625rem;
      margin-left: -0.625rem; } }
  @media screen and (min-width: 60em) {
    .row .row {
      margin-right: -0.625rem;
      margin-left: -0.625rem; } }
  @media print, screen and (min-width: 64.0625em) {
    .row .row {
      margin-right: -0.625rem;
      margin-left: -0.625rem; } }
  .row .row.collapse {
    margin-right: 0;
    margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.3125rem;
    padding-left: 0.3125rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }

.column, .columns {
  width: 100%;
  float: left; }
  @media print, screen and (min-width: 26.25em) {
    .column, .columns {
      padding-right: 0.3125rem;
      padding-left: 0.3125rem; } }
  @media print, screen and (min-width: 48em) {
    .column, .columns {
      padding-right: 0.625rem;
      padding-left: 0.625rem; } }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

.column.row.row, .row.row.columns {
  float: none; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

@media print, screen and (min-width: 26.25em) {
  .small-1 {
    width: 8.33333%; }
  .small-push-1 {
    position: relative;
    left: 8.33333%; }
  .small-pull-1 {
    position: relative;
    left: -8.33333%; }
  .small-offset-0 {
    margin-left: 0%; }
  .small-2 {
    width: 16.66667%; }
  .small-push-2 {
    position: relative;
    left: 16.66667%; }
  .small-pull-2 {
    position: relative;
    left: -16.66667%; }
  .small-offset-1 {
    margin-left: 8.33333%; }
  .small-3 {
    width: 25%; }
  .small-push-3 {
    position: relative;
    left: 25%; }
  .small-pull-3 {
    position: relative;
    left: -25%; }
  .small-offset-2 {
    margin-left: 16.66667%; }
  .small-4 {
    width: 33.33333%; }
  .small-push-4 {
    position: relative;
    left: 33.33333%; }
  .small-pull-4 {
    position: relative;
    left: -33.33333%; }
  .small-offset-3 {
    margin-left: 25%; }
  .small-5 {
    width: 41.66667%; }
  .small-push-5 {
    position: relative;
    left: 41.66667%; }
  .small-pull-5 {
    position: relative;
    left: -41.66667%; }
  .small-offset-4 {
    margin-left: 33.33333%; }
  .small-6 {
    width: 50%; }
  .small-push-6 {
    position: relative;
    left: 50%; }
  .small-pull-6 {
    position: relative;
    left: -50%; }
  .small-offset-5 {
    margin-left: 41.66667%; }
  .small-7 {
    width: 58.33333%; }
  .small-push-7 {
    position: relative;
    left: 58.33333%; }
  .small-pull-7 {
    position: relative;
    left: -58.33333%; }
  .small-offset-6 {
    margin-left: 50%; }
  .small-8 {
    width: 66.66667%; }
  .small-push-8 {
    position: relative;
    left: 66.66667%; }
  .small-pull-8 {
    position: relative;
    left: -66.66667%; }
  .small-offset-7 {
    margin-left: 58.33333%; }
  .small-9 {
    width: 75%; }
  .small-push-9 {
    position: relative;
    left: 75%; }
  .small-pull-9 {
    position: relative;
    left: -75%; }
  .small-offset-8 {
    margin-left: 66.66667%; }
  .small-10 {
    width: 83.33333%; }
  .small-push-10 {
    position: relative;
    left: 83.33333%; }
  .small-pull-10 {
    position: relative;
    left: -83.33333%; }
  .small-offset-9 {
    margin-left: 75%; }
  .small-11 {
    width: 91.66667%; }
  .small-push-11 {
    position: relative;
    left: 91.66667%; }
  .small-pull-11 {
    position: relative;
    left: -91.66667%; }
  .small-offset-10 {
    margin-left: 83.33333%; }
  .small-12 {
    width: 100%; }
  .small-offset-11 {
    margin-left: 91.66667%; }
  .small-up-1 > .column, .small-up-1 > .columns {
    float: left;
    width: 100%; }
    .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
      float: left; }
  .small-up-2 > .column, .small-up-2 > .columns {
    float: left;
    width: 50%; }
    .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
      float: left; }
  .small-up-3 > .column, .small-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
      float: left; }
  .small-up-4 > .column, .small-up-4 > .columns {
    float: left;
    width: 25%; }
    .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
      float: left; }
  .small-up-5 > .column, .small-up-5 > .columns {
    float: left;
    width: 20%; }
    .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
      float: left; }
  .small-up-6 > .column, .small-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
      float: left; }
  .small-up-7 > .column, .small-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
      float: left; }
  .small-up-8 > .column, .small-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
      float: left; }
  .small-collapse > .column, .small-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .small-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .small-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .small-uncollapse > .column, .small-uncollapse > .columns {
    padding-right: 0.3125rem;
    padding-left: 0.3125rem; }
  .small-centered {
    margin-right: auto;
    margin-left: auto; }
    .small-centered, .small-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .small-uncentered,
  .small-push-0,
  .small-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 48em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media screen and (min-width: 60em) {
  .tablet-1 {
    width: 8.33333%; }
  .tablet-push-1 {
    position: relative;
    left: 8.33333%; }
  .tablet-pull-1 {
    position: relative;
    left: -8.33333%; }
  .tablet-offset-0 {
    margin-left: 0%; }
  .tablet-2 {
    width: 16.66667%; }
  .tablet-push-2 {
    position: relative;
    left: 16.66667%; }
  .tablet-pull-2 {
    position: relative;
    left: -16.66667%; }
  .tablet-offset-1 {
    margin-left: 8.33333%; }
  .tablet-3 {
    width: 25%; }
  .tablet-push-3 {
    position: relative;
    left: 25%; }
  .tablet-pull-3 {
    position: relative;
    left: -25%; }
  .tablet-offset-2 {
    margin-left: 16.66667%; }
  .tablet-4 {
    width: 33.33333%; }
  .tablet-push-4 {
    position: relative;
    left: 33.33333%; }
  .tablet-pull-4 {
    position: relative;
    left: -33.33333%; }
  .tablet-offset-3 {
    margin-left: 25%; }
  .tablet-5 {
    width: 41.66667%; }
  .tablet-push-5 {
    position: relative;
    left: 41.66667%; }
  .tablet-pull-5 {
    position: relative;
    left: -41.66667%; }
  .tablet-offset-4 {
    margin-left: 33.33333%; }
  .tablet-6 {
    width: 50%; }
  .tablet-push-6 {
    position: relative;
    left: 50%; }
  .tablet-pull-6 {
    position: relative;
    left: -50%; }
  .tablet-offset-5 {
    margin-left: 41.66667%; }
  .tablet-7 {
    width: 58.33333%; }
  .tablet-push-7 {
    position: relative;
    left: 58.33333%; }
  .tablet-pull-7 {
    position: relative;
    left: -58.33333%; }
  .tablet-offset-6 {
    margin-left: 50%; }
  .tablet-8 {
    width: 66.66667%; }
  .tablet-push-8 {
    position: relative;
    left: 66.66667%; }
  .tablet-pull-8 {
    position: relative;
    left: -66.66667%; }
  .tablet-offset-7 {
    margin-left: 58.33333%; }
  .tablet-9 {
    width: 75%; }
  .tablet-push-9 {
    position: relative;
    left: 75%; }
  .tablet-pull-9 {
    position: relative;
    left: -75%; }
  .tablet-offset-8 {
    margin-left: 66.66667%; }
  .tablet-10 {
    width: 83.33333%; }
  .tablet-push-10 {
    position: relative;
    left: 83.33333%; }
  .tablet-pull-10 {
    position: relative;
    left: -83.33333%; }
  .tablet-offset-9 {
    margin-left: 75%; }
  .tablet-11 {
    width: 91.66667%; }
  .tablet-push-11 {
    position: relative;
    left: 91.66667%; }
  .tablet-pull-11 {
    position: relative;
    left: -91.66667%; }
  .tablet-offset-10 {
    margin-left: 83.33333%; }
  .tablet-12 {
    width: 100%; }
  .tablet-offset-11 {
    margin-left: 91.66667%; }
  .tablet-up-1 > .column, .tablet-up-1 > .columns {
    float: left;
    width: 100%; }
    .tablet-up-1 > .column:nth-of-type(1n), .tablet-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-1 > .column:nth-of-type(1n+1), .tablet-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .tablet-up-1 > .column:last-child, .tablet-up-1 > .columns:last-child {
      float: left; }
  .tablet-up-2 > .column, .tablet-up-2 > .columns {
    float: left;
    width: 50%; }
    .tablet-up-2 > .column:nth-of-type(1n), .tablet-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-2 > .column:nth-of-type(2n+1), .tablet-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .tablet-up-2 > .column:last-child, .tablet-up-2 > .columns:last-child {
      float: left; }
  .tablet-up-3 > .column, .tablet-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .tablet-up-3 > .column:nth-of-type(1n), .tablet-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-3 > .column:nth-of-type(3n+1), .tablet-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .tablet-up-3 > .column:last-child, .tablet-up-3 > .columns:last-child {
      float: left; }
  .tablet-up-4 > .column, .tablet-up-4 > .columns {
    float: left;
    width: 25%; }
    .tablet-up-4 > .column:nth-of-type(1n), .tablet-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-4 > .column:nth-of-type(4n+1), .tablet-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .tablet-up-4 > .column:last-child, .tablet-up-4 > .columns:last-child {
      float: left; }
  .tablet-up-5 > .column, .tablet-up-5 > .columns {
    float: left;
    width: 20%; }
    .tablet-up-5 > .column:nth-of-type(1n), .tablet-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-5 > .column:nth-of-type(5n+1), .tablet-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .tablet-up-5 > .column:last-child, .tablet-up-5 > .columns:last-child {
      float: left; }
  .tablet-up-6 > .column, .tablet-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .tablet-up-6 > .column:nth-of-type(1n), .tablet-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-6 > .column:nth-of-type(6n+1), .tablet-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .tablet-up-6 > .column:last-child, .tablet-up-6 > .columns:last-child {
      float: left; }
  .tablet-up-7 > .column, .tablet-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .tablet-up-7 > .column:nth-of-type(1n), .tablet-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-7 > .column:nth-of-type(7n+1), .tablet-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .tablet-up-7 > .column:last-child, .tablet-up-7 > .columns:last-child {
      float: left; }
  .tablet-up-8 > .column, .tablet-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .tablet-up-8 > .column:nth-of-type(1n), .tablet-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .tablet-up-8 > .column:nth-of-type(8n+1), .tablet-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .tablet-up-8 > .column:last-child, .tablet-up-8 > .columns:last-child {
      float: left; }
  .tablet-collapse > .column, .tablet-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .tablet-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .tablet-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .tablet-uncollapse > .column, .tablet-uncollapse > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .tablet-centered {
    margin-right: auto;
    margin-left: auto; }
    .tablet-centered, .tablet-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .tablet-uncentered,
  .tablet-push-0,
  .tablet-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 64.0625em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 26.25em) {
  .column-block {
    margin-bottom: 0.625rem; }
    .column-block > :last-child {
      margin-bottom: 0; } }

@media print, screen and (min-width: 48em) {
  .column-block {
    margin-bottom: 1.25rem; }
    .column-block > :last-child {
      margin-bottom: 0; } }

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none; }
  .accordion[disabled] .accordion-title {
    cursor: not-allowed; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: foreground(#fefefe, #008283); }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: foreground(#fefefe, #0a0a0a); }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden; }

.orbit-slide {
  width: 100%; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fefefe; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #cacaca; }
    .orbit-bullets button:hover {
      background-color: #8a8a8a; }
    .orbit-bullets button.is-active {
      background-color: #8a8a8a; }

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help; }

.tooltip {
  position: absolute;
  top: calc(100% + 0.433rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0.5rem;
  background-color: #008283;
  font-size: 0.75rem;
  color: #fefefe; }
  .tooltip::before {
    position: absolute; }
  .tooltip.bottom::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.5rem;
    content: '';
    border-top-width: 0;
    border-bottom-style: solid;
    border-color: transparent transparent #008283;
    bottom: 100%; }
  .tooltip.bottom.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }
  .tooltip.top::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.5rem;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #008283 transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.top.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }
  .tooltip.left::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.5rem;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #008283;
    left: 100%; }
  .tooltip.left.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.right::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.5rem;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #008283 transparent transparent;
    right: 100%;
    left: auto; }
  .tooltip.right.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.align-top::before {
    bottom: auto;
    top: 10%; }
  .tooltip.align-bottom::before {
    bottom: 10%;
    top: auto; }
  .tooltip.align-left::before {
    left: 10%;
    right: auto; }
  .tooltip.align-right::before {
    left: auto;
    right: 10%; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (min-width: 26.25em) and (max-width: 47.9375em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 26.1875em), screen and (min-width: 48em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 48em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 47.9375em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 48em) and (max-width: 59.9375em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 47.9375em), screen and (min-width: 60em) {
  .show-for-medium-only {
    display: none !important; } }

@media screen and (min-width: 60em) {
  .hide-for-tablet {
    display: none !important; } }

@media screen and (max-width: 59.9375em) {
  .show-for-tablet {
    display: none !important; } }

@media screen and (min-width: 60em) and (max-width: 64em) {
  .hide-for-tablet-only {
    display: none !important; } }

@media screen and (max-width: 59.9375em), screen and (min-width: 64.0625em) {
  .show-for-tablet-only {
    display: none !important; } }

@media print, screen and (min-width: 64.0625em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 64em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64.0625em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 64em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
  -webkit-clip-path: none;
          clip-path: none; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' '; }

.clearfix::after {
  clear: both; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

body {
  padding-top: 7.375rem; }
  body.overflow-hidden {
    overflow: hidden; }

h1,
.heading-1 {
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.25em; }

h2,
.heading-2 {
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: .016em;
  line-height: 1.25em; }

h3,
.heading-3 {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: .016em;
  line-height: 1.25em; }

h4,
.heading-4 {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .016em;
  line-height: 1.5em; }

h1,
h2,
h3,
h4,
.heading-1,
.heading-2,
.heading-3,
.heading-4 {
  margin: 1rem 0; }
  h1 a,
  h2 a,
  h3 a,
  h4 a,
  .heading-1 a,
  .heading-2 a,
  .heading-3 a,
  .heading-4 a {
    line-height: inherit; }

p {
  letter-spacing: .01875em;
  line-height: 1.5em; }

a {
  color: #008283;
  letter-spacing: .01875em;
  line-height: 1.5em;
  -webkit-transition: color 250ms;
  transition: color 250ms; }
  a:hover {
    color: #072e43; }

.tooltip {
  font-family: "Rubik", sans-serif;
  line-height: 1.5em;
  max-width: 14.25rem;
  text-align: center; }

.row--padding-big {
  padding-left: 2.5rem;
  padding-right: 2.5rem; }

.facebook-color {
  color: #3b5998; }

.linkedin-color {
  color: #007bb5; }

.twitter-color {
  color: #55acee; }

.login-modal-opened main {
  display: none; }

@media all and (max-width: 78.25rem) {
  .row.expanded {
    max-width: 75rem; }
  .row--padding-big {
    padding-left: 0;
    padding-right: 0; }
  .section-padding {
    padding-left: 2.25rem;
    padding-right: 2.25rem; } }

@media all and (max-width: 59.9375rem) {
  body {
    padding-top: 4.5rem; } }

@media all and (max-width: 47.9375rem) {
  body {
    padding-top: 3rem; }
  h1,
  .heading-1 {
    font-size: 1.5rem; }
  h3,
  .heading-3 {
    font-size: 1.25rem;
    line-height: 1.2em; }
  .section-padding {
    padding-left: 1rem;
    padding-right: 1rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.slick-slider {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: block;
  position: relative;
  -ms-touch-action: pan-y;
      touch-action: pan-y;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.slick-list {
  display: block;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: relative; }

.slick-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  left: 0;
  margin-left: .3125rem;
  position: relative;
  top: 0; }

.slick-slide {
  float: left;
  min-height: 1px;
  outline: none; }

.slick-arrow {
  color: #fff;
  font-size: 1.5rem;
  outline: none;
  position: absolute;
  top: 50%; }
  .slick-arrow.slick-prev {
    left: -2rem;
    -webkit-transform: translate(0, -50%);
        -ms-transform: translate(0, -50%);
            transform: translate(0, -50%); }
    @media screen and (min-width: 75em) {
      .slick-arrow.slick-prev {
        left: -3.125rem; } }
  .slick-arrow.slick-next {
    right: -2rem;
    -webkit-transform: translate(0, -50%);
        -ms-transform: translate(0, -50%);
            transform: translate(0, -50%); }
    @media screen and (min-width: 75em) {
      .slick-arrow.slick-next {
        right: -3.125rem; } }
  .slick-arrow.slick-disabled {
    cursor: default;
    opacity: .3; }

.grid-helper {
  height: 100%;
  position: fixed;
  width: 100%; }
  .grid-helper__inner {
    max-width: 75rem;
    margin-right: auto;
    margin-left: auto;
    height: 100%; }
    .grid-helper__inner::before, .grid-helper__inner::after {
      display: table;
      content: ' '; }
    .grid-helper__inner::after {
      clear: both; }
  .grid-helper__col {
    width: 8.33333%;
    float: left;
    height: 100%; }
    @media print, screen and (min-width: 26.25em) {
      .grid-helper__col {
        padding-right: 0.3125rem;
        padding-left: 0.3125rem; } }
    @media print, screen and (min-width: 48em) {
      .grid-helper__col {
        padding-right: 0.625rem;
        padding-left: 0.625rem; } }
    .grid-helper__col:last-child:not(:first-child) {
      float: right; }
    .grid-helper__col p {
      background: #00f;
      height: 100%;
      margin: 0;
      opacity: .4;
      padding: 0; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.button {
  border: 1px solid;
  border-radius: 1.5em;
  color: #008283;
  cursor: pointer;
  display: inline-block;
  font-family: "futura-pt", sans-serif;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.3125em;
  outline: none;
  padding: .75em 2.5em;
  position: relative;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  -webkit-transition: color 250ms, background 250ms, border-color 250ms;
  transition: color 250ms, background 250ms, border-color 250ms; }
  .button:hover {
    background: #008283;
    color: #fff; }
  .button__icon {
    display: inline-block;
    font-size: .625rem;
    margin-left: .5rem; }
  .button__text {
    -webkit-transition: opacity 200ms, visibility 200ms;
    transition: opacity 200ms, visibility 200ms; }
    .button__text--action-text {
      left: 0;
      opacity: 0;
      padding: inherit;
      position: absolute;
      top: 0;
      visibility: hidden;
      width: 100%; }
  .button--filled {
    background: #008283;
    border-color: #008283;
    color: #fff; }
    .button--filled:hover {
      background: #015f5f;
      border-color: #015f5f;
      color: #fff; }
  .button--big {
    font-size: 1rem; }
  .button--full {
    display: block;
    width: 100%; }
  .button.action-happend .button__text--default-text {
    opacity: 0;
    visibility: hidden; }
  .button.action-happend .button__text--action-text {
    opacity: 1;
    visibility: visible; }

@media screen and (max-width: 75rem) {
  .button__text .hide-rwd {
    display: none; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.text-button {
  direction: ltr;
  display: inline-block;
  font-family: "futura-pt", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .0625em;
  line-height: 1em;
  margin-top: .4375rem;
  text-decoration: none;
  text-transform: uppercase; }
  .text-button:after {
    content: '\f105';
    display: inline-block;
    font: normal normal normal 1em FontAwesome;
    margin-left: 1em;
    margin-top: -.25em;
    -webkit-transition: opacity 250ms ease-out;
    transition: opacity 250ms ease-out;
    vertical-align: middle; }
  .text-button:hover:after {
    opacity: 0;
    -webkit-transform: translateX(2rem);
        -ms-transform: translateX(2rem);
            transform: translateX(2rem);
    -webkit-transition: opacity 200ms ease-in, -webkit-transform 200ms ease-in;
    transition: opacity 200ms ease-in, -webkit-transform 200ms ease-in;
    transition: opacity 200ms ease-in, transform 200ms ease-in;
    transition: opacity 200ms ease-in, transform 200ms ease-in, -webkit-transform 200ms ease-in; }
  .text-button--white {
    color: #fff; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.language-switcher {
  color: #fff;
  cursor: default;
  direction: ltr;
  font-family: "futura-pt", sans-serif;
  font-size: .75rem;
  font-weight: bold;
  height: 100%;
  letter-spacing: .025em;
  line-height: 1rem;
  min-width: 5.25rem;
  position: relative;
  text-transform: uppercase; }
  .language-switcher__placeholder {
    height: 100%;
    line-height: 2.875rem;
    padding: 0 .8125rem;
    -webkit-transition: background-color 250ms;
    transition: background-color 250ms; }
  .language-switcher__flag {
    background-repeat: no-repeat;
    -webkit-background-size: contain;
            background-size: contain;
    display: inline-block;
    height: 1em;
    vertical-align: middle;
    width: 2em; }
  .language-switcher__name {
    display: inline-block;
    vertical-align: top; }
    .language-switcher__name:after {
      content: '\f107';
      display: inline-block;
      font: normal normal normal 1rem FontAwesome;
      margin-left: .375em;
      margin-top: -.25rem;
      vertical-align: middle; }
  .language-switcher__list {
    background: #f0f5f9;
    -webkit-box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
    display: block;
    left: 0;
    list-style: none;
    margin: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    top: 2.875rem;
    -webkit-transition: opacity 250ms, visibility 250ms;
    transition: opacity 250ms, visibility 250ms;
    visibility: hidden;
    width: 100%; }
  .language-switcher__list-item {
    display: block; }
  .language-switcher__list-link {
    color: #072e43;
    display: block;
    padding: .375rem 1.3125rem;
    text-decoration: none;
    -webkit-transition: background-color 250ms;
    transition: background-color 250ms; }
    .language-switcher__list-link:hover {
      background-color: #ddd; }
  .language-switcher:hover .placeholder {
    background-color: #008283; }
  .language-switcher:hover .list {
    opacity: 1;
    visibility: visible; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.site-search {
  margin-left: 1.875rem;
  position: relative; }
  .site-search__field {
    border: 0;
    color: #738684;
    display: block;
    font-size: .875rem;
    height: 1.5rem;
    letter-spacing: .02em;
    max-width: 100%;
    outline: none;
    padding: .1875rem 1.875rem .1875rem .625rem;
    width: 11.25rem;
    border-radius: 1em; }
  .site-search__button {
    background-color: #008283;
    border-radius: .625rem;
    cursor: pointer;
    display: block;
    height: 1.25rem;
    outline: none;
    position: absolute;
    right: .125rem;
    top: .125rem;
    -webkit-transition: background-color 250ms;
    transition: background-color 250ms;
    width: 1.25rem; }
    .site-search__button:after {
      bottom: 0;
      content: '';
      display: block;
      left: 0;
      margin: auto;
      position: absolute;
      right: 0;
      top: 0;
      width: 0.6875em;
      height: 0.6875em;
      background-position: -0.3125em -47.625em; }
      .lt-ie9 .site-search__button:after {
        width: 10px;
        height: 10px;
        background-position: -5 -762px; }
    .site-search__button:hover {
      background-color: #015f5f; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.social-nav {
  direction: ltr;
  display: block;
  list-style: none;
  padding: 0; }
  .social-nav__element {
    display: inline-block;
    margin: 0 .5rem; }
    .social-nav__element:first-child {
      margin-left: 0; }
    .social-nav__element:last-child {
      margin-right: 0; }
  .social-nav__link {
    -webkit-transition: color 250ms;
    transition: color 250ms; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.top-bar {
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 5; }
  .top-bar__row {
    height: 100%; }
  .top-bar__search-bar {
    background: #072e43;
    height: 2.875rem;
    position: relative;
    z-index: 3; }
    .top-bar__search-bar .language-switcher,
    .top-bar__search-bar .site-search,
    .top-bar__search-bar .login-button {
      float: right; }
    .top-bar__search-bar .site-search {
      margin-top: .6875rem; }
  .top-bar__nav-bar {
    background: #fff;
    -webkit-box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
    height: 4.5rem; }
    .top-bar__nav-bar--no-shadow {
      -webkit-box-shadow: none;
              box-shadow: none; }
  .top-bar__nav-bar-social-wrapper {
    float: left; }
    .top-bar__nav-bar-social-wrapper .social-nav {
      line-height: 1.5rem;
      margin-top: 1.5rem; }
      .top-bar__nav-bar-social-wrapper .social-nav__link {
        color: #008283; }
        .top-bar__nav-bar-social-wrapper .social-nav__link:hover {
          color: #015f5f; }
  .top-bar__nav-bar-social-title {
    display: none; }
  .top-bar__logo-link {
    display: block;
    float: left;
    height: 100%;
    padding: .75rem 0; }
  .top-bar__logo {
    display: block;
    height: 100%;
    width: auto; }
  .top-bar__nav-bar-menu-wrapper {
    float: right; }
  .top-bar__nav-bar-menu-wrapper-scroll {
    float: left; }
  .top-bar__mobile-dropdown-top {
    display: none; }
  .top-bar__mobile-buttons {
    display: none;
    float: right;
    position: relative;
    z-index: 3; }
  .top-bar__mobile-button {
    border-left: 1px solid #d8d8d8;
    color: #008283;
    display: block;
    float: left;
    font-size: 1.5rem;
    height: 4.5rem;
    outline: none;
    width: 4.5rem; }
    .top-bar__mobile-button.toggle-menu-btn {
      position: relative; }
      .top-bar__mobile-button.toggle-menu-btn span {
        background: #008283;
        display: block;
        height: 3px;
        left: 0;
        margin: 0 auto;
        position: absolute;
        right: 0;
        top: 50%;
        -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
                transform: translateY(-50%);
        -webkit-transition: background 500ms;
        transition: background 500ms;
        width: 42%; }
        .top-bar__mobile-button.toggle-menu-btn span:before, .top-bar__mobile-button.toggle-menu-btn span:after {
          background: #008283;
          content: '';
          display: block;
          height: 100%;
          left: 0;
          position: absolute;
          -webkit-transform-origin: 50% 50%;
              -ms-transform-origin: 50% 50%;
                  transform-origin: 50% 50%;
          -webkit-transition: top 500ms, bottom 500ms, background 500ms, -webkit-transform 500ms;
          transition: top 500ms, bottom 500ms, background 500ms, -webkit-transform 500ms;
          transition: transform 500ms, top 500ms, bottom 500ms, background 500ms;
          transition: transform 500ms, top 500ms, bottom 500ms, background 500ms, -webkit-transform 500ms;
          width: 100%; }
        .top-bar__mobile-button.toggle-menu-btn span:before {
          top: -233.33%; }
        .top-bar__mobile-button.toggle-menu-btn span:after {
          bottom: -233.33%; }
      .top-bar__mobile-button.toggle-menu-btn.opened span {
        background: transparent; }
        .top-bar__mobile-button.toggle-menu-btn.opened span:before {
          top: 0;
          -webkit-transform: rotate(45deg);
              -ms-transform: rotate(45deg);
                  transform: rotate(45deg); }
        .top-bar__mobile-button.toggle-menu-btn.opened span:after {
          bottom: 0;
          -webkit-transform: rotate(-45deg);
              -ms-transform: rotate(-45deg);
                  transform: rotate(-45deg); }
  .top-bar__nav-list {
    float: left;
    list-style: none;
    margin-bottom: 0;
    margin-right: 1rem;
    margin-top: 0;
    padding: 0; }
    .top-bar__nav-list > .menu-item {
      float: left;
      position: relative; }
      .top-bar__nav-list > .menu-item.dropdown > a {
        direction: ltr;
        position: relative; }
        .top-bar__nav-list > .menu-item.dropdown > a:before {
          background: #008283;
          bottom: -.3125rem;
          content: '';
          display: block;
          height: .3125rem;
          left: 0;
          opacity: 0;
          pointer-events: none;
          position: absolute;
          -webkit-transition: opacity 150ms, visibility 150ms;
          transition: opacity 150ms, visibility 150ms;
          visibility: hidden;
          width: 100%; }
        .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon {
          display: inline-block;
          font-size: 1em;
          margin-left: 1em; }
      .top-bar__nav-list > .menu-item.dropdown:hover > a {
        -webkit-transition: color 250ms 100ms, background 250ms 100ms;
        transition: color 250ms 100ms, background 250ms 100ms; }
        .top-bar__nav-list > .menu-item.dropdown:hover > a:before {
          opacity: 1;
          -webkit-transition: opacity 150ms 200ms, visibility 150ms 200ms;
          transition: opacity 150ms 200ms, visibility 150ms 200ms;
          visibility: visible; }
      .top-bar__nav-list > .menu-item:hover > a {
        background-color: #008283;
        color: #fff; }
        .top-bar__nav-list > .menu-item:hover > a:after {
          -webkit-transform: rotate(180deg);
              -ms-transform: rotate(180deg);
                  transform: rotate(180deg); }
      .top-bar__nav-list > .menu-item:hover .menu-dropdown {
        opacity: 1;
        -webkit-transition: opacity 250ms 50ms, visibility 250ms 50ms;
        transition: opacity 250ms 50ms, visibility 250ms 50ms;
        visibility: visible; }
      .top-bar__nav-list > .menu-item > a {
        color: #072e43;
        display: block;
        font-weight: 600;
        letter-spacing: .0625em;
        line-height: 4.5rem;
        padding: 0 1.25rem;
        text-decoration: none;
        text-transform: uppercase;
        -webkit-transition: color 250ms, background 250ms;
        transition: color 250ms, background 250ms;
        z-index: 2; }

.login-button {
  color: #fff;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-size: .75rem;
  font-weight: bold;
  height: 100%;
  letter-spacing: .025em;
  line-height: 2.875rem;
  padding: 0 .8125rem;
  text-decoration: none;
  text-transform: uppercase;
  -webkit-transition: background-color 250ms;
  transition: background-color 250ms; }
  .login-button:hover {
    background-color: #008283;
    color: #fff; }
  .login-button__text--hidden {
    display: none; }

.menu-dropdown {
  direction: ltr;
  left: 0;
  opacity: 0;
  position: fixed;
  text-align: left;
  top: 7.375rem;
  -webkit-transition: opacity 250ms, visibility 250ms;
  transition: opacity 250ms, visibility 250ms;
  visibility: hidden;
  width: 100%; }
  .menu-dropdown:after {
    bottom: 0;
    -webkit-box-shadow: 0 2px 25px 0 rgba(0, 0, 0, 0.5);
            box-shadow: 0 2px 25px 0 rgba(0, 0, 0, 0.5);
    content: '';
    display: block;
    height: 10px;
    left: 0;
    position: absolute;
    width: 100%; }
  .menu-dropdown__inner {
    background: #008283;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    position: relative;
    z-index: 2; }
    .menu-dropdown__inner:before {
      -webkit-box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.3);
              box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.3);
      content: '';
      display: block;
      height: 1px;
      left: 0;
      position: absolute;
      top: -1px;
      width: 100%; }
  .menu-dropdown__nav-column {
    background: #0c9697;
    width: 17.5rem; }
  .menu-dropdown__nav-list {
    list-style: none;
    padding: 1.875rem 0; }
  .menu-dropdown__nav-list-element {
    display: block; }
  .menu-dropdown__nav-list-element-link {
    color: #fff;
    display: block;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: .01875rem;
    line-height: 1.2em;
    padding: .6875rem 4rem .8125rem 2.5rem;
    position: relative;
    text-decoration: none; }
    .menu-dropdown__nav-list-element-link--active {
      background: #008283; }
    .menu-dropdown__nav-list-element-link:hover {
      color: #fff; }
    .menu-dropdown__nav-list-element-link:after {
      content: '\f105';
      display: block;
      font: normal normal normal 16px/1 FontAwesome;
      position: absolute;
      right: 2rem;
      top: 50%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%); }
  .menu-dropdown__content-column {
    max-width: 60rem;
    padding: 2.375rem 1.875rem 3.125rem;
    width: calc(100% - 17.5rem); }
  .menu-dropdown__content {
    display: none; }
    .menu-dropdown__content--active {
      display: block; }
  .menu-dropdown__content-top {
    border-bottom: 1px solid #0c9697;
    color: #fff;
    display: block;
    margin: 0 0 .75rem;
    padding-bottom: .625rem; }
    .menu-dropdown__content-top--tools {
      margin: 0 0 1rem; }
  .menu-dropdown__content-news-popular {
    float: right;
    margin-right: -1.25rem; }
  .menu-dropdown__tools-row {
    padding-bottom: 6rem;
    padding-top: 2.375rem;
    width: 100%; }
    .menu-dropdown__tools-row .resource-tile__category-label {
      background: #fff;
      color: #008283; }
    .menu-dropdown__tools-row .resource-tile__title-link {
      color: #fff; }
      .menu-dropdown__tools-row .resource-tile__title-link:hover {
        color: #072e43; }
    .menu-dropdown__tools-row .resource-tile__desc {
      color: #fff; }
    .menu-dropdown__tools-row .resource-tile__link {
      color: #fff; }
      .menu-dropdown__tools-row .resource-tile__link:hover {
        color: #072e43; }
  .menu-dropdown__tools-sub-menu-column {
    margin-top: 2.125rem; }
    .menu-dropdown__tools-sub-menu-column .sub-menu {
      border-top: 1px solid #0c9697;
      list-style: none;
      padding: 0; }
      .menu-dropdown__tools-sub-menu-column .sub-menu li {
        border-bottom: 1px solid #0c9697;
        display: block; }
        .menu-dropdown__tools-sub-menu-column .sub-menu li a {
          color: #fff;
          display: block;
          font-size: 1rem;
          font-weight: 600;
          letter-spacing: .01875rem;
          line-height: 1.5em;
          padding: .8125rem 1rem .625rem 0;
          position: relative;
          text-decoration: none; }
          .menu-dropdown__tools-sub-menu-column .sub-menu li a:after {
            content: '\f105';
            display: block;
            font: normal normal normal 1em FontAwesome;
            position: absolute;
            right: 0;
            top: 50%;
            -webkit-transform: translateY(-50%);
                -ms-transform: translateY(-50%);
                    transform: translateY(-50%); }
    .menu-dropdown__tools-sub-menu-column--about .sub-menu li a {
      font-size: 1.25rem;
      padding: .875rem 1rem .6875rem 0; }

.dropdown-tools .menu-dropdown__inner {
  min-height: 450px; }

.row.expanded .menu-dropdown__content-news-row {
  margin-left: -.625rem;
  margin-right: -.625rem; }

.row.expanded .menu-dropdown__popular-tools-row {
  margin-left: -.625rem;
  margin-right: -.625rem; }

.menu-tile {
  color: #fff; }
  .menu-tile__photo-wrapper {
    overflow: hidden;
    position: relative; }
    .menu-tile__photo-wrapper img {
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden;
      display: block;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: -webkit-transform 150ms ease-in;
      transition: -webkit-transform 150ms ease-in;
      transition: transform 150ms ease-in;
      transition: transform 150ms ease-in, -webkit-transform 150ms ease-in; }
  .menu-tile__title {
    margin: .4375rem 0 .3125rem; }
  .menu-tile__title-link {
    color: #fff;
    text-decoration: none; }
  .menu-tile__date {
    display: block;
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .01875rem;
    margin: 0 0 .375rem; }
  .menu-tile__excerpt {
    font-family: "Rubik", sans-serif;
    margin: 0; }
  .menu-tile:hover .menu-tile__photo-wrapper img {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.menu-dropdown-popular {
  margin: 0 0 1.5rem; }
  .menu-dropdown-popular__title {
    margin: 0 0 .25rem; }
  .menu-dropdown-popular__title-link {
    color: #fff;
    text-decoration: none; }
  .menu-dropdown-popular__excerpt {
    color: #fff;
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    line-height: 1.5em;
    margin: 0; }

.admin-bar .top-bar,
.admin-bar .menu-dropdown {
  margin-top: 32px; }

@media all and (max-width: 75rem) {
  .top-bar__nav-bar-social-wrapper .social-nav__element {
    margin: 0 .25rem; }
    .top-bar__nav-bar-social-wrapper .social-nav__element:first-child {
      margin-left: 0; }
    .top-bar__nav-bar-social-wrapper .social-nav__element:last-child {
      margin-right: 0; }
  .top-bar__nav-list > .menu-item > a {
    font-size: .875rem;
    padding: 0 .625rem; }
  .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon {
    margin-left: .5rem; } }

@media all and (max-width: 63.9375rem) {
  .top-bar__nav-list > .menu-item > a {
    font-size: .8125rem;
    padding: 0 .5rem; }
  .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon {
    margin-left: .375rem; } }

@media all and (max-width: 59.9375rem) {
  .top-bar__search-bar {
    display: none; }
  .top-bar__nav-bar {
    position: relative; }
    .top-bar__nav-bar:before {
      background: #fff;
      content: '';
      display: block;
      height: 100%;
      left: 0;
      position: absolute;
      top: 0;
      width: 100%;
      z-index: 2; }
  .top-bar__logo-link {
    position: relative;
    z-index: 3; }
  .top-bar__mobile-buttons {
    display: block;
    margin-right: -2.25rem; }
  .top-bar__nav-bar-menu-wrapper {
    background: #072e43;
    height: 100%;
    left: 0;
    opacity: 0;
    padding: 7.5rem 0 6rem;
    position: fixed;
    top: 0;
    -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
            transform: translateY(-100%);
    -webkit-transition: opacity 500ms, visibility 500ms, -webkit-transform 500ms;
    transition: opacity 500ms, visibility 500ms, -webkit-transform 500ms;
    transition: transform 500ms, opacity 500ms, visibility 500ms;
    transition: transform 500ms, opacity 500ms, visibility 500ms, -webkit-transform 500ms;
    visibility: hidden;
    width: 100%;
    z-index: 1; }
    .top-bar__nav-bar-menu-wrapper.opened {
      opacity: 1;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none;
      visibility: visible; }
  .top-bar__nav-bar-menu-wrapper-scroll {
    float: none;
    height: 100%;
    overflow-y: scroll; }
  .top-bar__nav-list {
    float: none;
    margin: 0; }
    .top-bar__nav-list > .menu-item {
      border-bottom: 1px solid rgba(245, 245, 245, 0.1);
      float: none; }
      .top-bar__nav-list > .menu-item > a {
        color: #fff;
        font-size: 1.5rem;
        font-weight: 600;
        line-height: 3em;
        padding: 0 2.25rem;
        text-transform: none; }
        .top-bar__nav-list > .menu-item > a:hover {
          background: none; }
      .top-bar__nav-list > .menu-item.dropdown > a {
        position: relative; }
        .top-bar__nav-list > .menu-item.dropdown > a:before {
          display: none; }
        .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon {
          border-left: 1px solid rgba(245, 245, 245, 0.1);
          display: block;
          height: 3em;
          line-height: 3em;
          margin: 0;
          position: absolute;
          right: 0;
          text-align: center;
          top: 0;
          -webkit-transition: border-left-color 300ms, background 300ms;
          transition: border-left-color 300ms, background 300ms;
          width: 3em; }
          .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon:before {
            display: inline-block;
            -webkit-transform-origin: 50% 50%;
                -ms-transform-origin: 50% 50%;
                    transform-origin: 50% 50%;
            -webkit-transition: -webkit-transform 300ms;
            transition: -webkit-transform 300ms;
            transition: transform 300ms;
            transition: transform 300ms, -webkit-transform 300ms; }
          .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon.toggled {
            background: #008283;
            border-left-color: #008283; }
            .top-bar__nav-list > .menu-item.dropdown > a .dropdown-icon.toggled:before {
              -webkit-transform: rotate(180deg);
                  -ms-transform: rotate(180deg);
                      transform: rotate(180deg); }
  .top-bar__nav-bar-social-wrapper {
    bottom: 0;
    float: none;
    left: 0;
    position: absolute;
    width: 100%; }
    .top-bar__nav-bar-social-wrapper .social-nav {
      border-top: 1px solid rgba(245, 245, 245, 0.1);
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      margin: 0; }
      .top-bar__nav-bar-social-wrapper .social-nav__element {
        border-right: 1px solid rgba(245, 245, 245, 0.1);
        display: block;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        margin: 0; }
        .top-bar__nav-bar-social-wrapper .social-nav__element:last-child {
          border-right: 0; }
      .top-bar__nav-bar-social-wrapper .social-nav__link {
        color: #fff;
        display: block;
        padding: 1rem 0;
        text-align: center; }
  .top-bar__nav-bar-social-title {
    color: #fff;
    display: block;
    font-size: .75rem;
    font-weight: 600;
    padding: .5625rem 0;
    text-align: center;
    text-transform: uppercase; }
  .top-bar__mobile-dropdown-top {
    background: #008283;
    -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
    display: block;
    font-size: 1rem;
    font-weight: 700;
    left: 0;
    position: absolute;
    top: 4.5rem;
    width: 100%; }
    .top-bar__mobile-dropdown-top > * {
      display: block;
      float: left;
      text-align: center;
      width: 50%; }
      .top-bar__mobile-dropdown-top > *:first-child {
        border-right: 1px solid rgba(7, 46, 68, 0.2); }
    .top-bar__mobile-dropdown-top .language-switcher {
      font-size: 1rem;
      height: 3rem; }
      .top-bar__mobile-dropdown-top .language-switcher__name {
        vertical-align: middle; }
      .top-bar__mobile-dropdown-top .language-switcher__flag {
        height: .75em;
        width: 1.5em; }
      .top-bar__mobile-dropdown-top .language-switcher__placholder {
        line-height: 3rem; }
      .top-bar__mobile-dropdown-top .language-switcher__list {
        top: 3rem; }
  .top-bar__mobile-login {
    color: #fff;
    line-height: 3rem;
    text-decoration: none;
    text-transform: uppercase;
    -webkit-transition: background 200ms, color 200ms;
    transition: background 200ms, color 200ms; }
    .top-bar__mobile-login:hover {
      background: #015f5f;
      color: #fff; }
  .menu-dropdown {
    display: none;
    left: auto;
    opacity: 1;
    position: static;
    top: auto;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .menu-dropdown:after {
      display: none; }
    .menu-dropdown__inner {
      display: block; }
      .menu-dropdown__inner:before {
        display: none; }
    .menu-dropdown__nav-column {
      background: #008283;
      width: 100%; }
    .menu-dropdown__nav-list {
      padding: 0; }
    .menu-dropdown__nav-list-element {
      border-bottom: 1px solid rgba(245, 245, 245, 0.1); }
      .menu-dropdown__nav-list-element:last-child {
        border-bottom: 0; }
    .menu-dropdown__nav-list-element-link {
      font-size: 1.25rem;
      font-weight: 400;
      padding: .75rem 2.25rem; }
      .menu-dropdown__nav-list-element-link:after {
        display: none; }
    .menu-dropdown__content-column {
      display: none; }
    .menu-dropdown__tools-row {
      margin: 0;
      padding: 0; }
    .menu-dropdown__tools-popular-column {
      display: none; }
    .menu-dropdown__tools-sub-menu-column {
      margin: 0;
      padding: 0; }
      .menu-dropdown__tools-sub-menu-column .sub-menu {
        background: #008283;
        border-top: 0; }
        .menu-dropdown__tools-sub-menu-column .sub-menu li {
          border-bottom: 1px solid rgba(245, 245, 245, 0.1); }
          .menu-dropdown__tools-sub-menu-column .sub-menu li a {
            font-size: 1.25rem;
            font-weight: 400;
            padding: .75rem 2.25rem; }
            .menu-dropdown__tools-sub-menu-column .sub-menu li a:after {
              display: none; }
  .dropdown-tools .menu-dropdown__inner {
    min-height: 0; } }

@media all and (max-width: 47.9375rem) {
  .top-bar__nav-bar {
    height: 3em; }
  .top-bar__nav-bar-menu-wrapper {
    padding: 6rem 0; }
  .top-bar__mobile-buttons {
    margin-right: -.9375rem; }
  .top-bar__mobile-button {
    font-size: 1rem;
    height: 3rem;
    width: 3rem; }
    .top-bar__mobile-button.toggle-menu-btn span {
      height: 2px; }
  .top-bar__mobile-dropdown-top {
    top: 3rem; }
  .top-bar__nav-list > .menu-item > a {
    padding: 0 1rem; }
  .menu-dropdown__nav-list-element-link {
    padding: .75rem 1rem; }
  .menu-dropdown__tools-sub-menu-column .sub-menu li a {
    padding: .75rem 1rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.site-footer {
  background: #072e43;
  padding-bottom: 1.625rem;
  padding-top: 1.625rem; }
  .site-footer__nav-row {
    margin-bottom: 2.25rem; }
  .site-footer__nav-list {
    display: block;
    float: right;
    font-family: Arial, sans-serif;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .025em;
    line-height: .875rem;
    list-style: none;
    margin-left: -.625rem;
    margin-right: -.625rem;
    padding: 0; }
    .site-footer__nav-list .menu-item {
      display: block;
      float: left;
      width: 6.25rem; }
      .site-footer__nav-list .menu-item > a {
        color: #fff;
        direction: ltr;
        display: inline-block;
        text-decoration: none; }
        .site-footer__nav-list .menu-item > a:after {
          content: '\f105';
          display: inline-block;
          font: normal normal normal 14px/1 FontAwesome;
          margin-left: .25em;
          vertical-align: text-bottom; }
        .site-footer__nav-list .menu-item > a:hover {
          color: #008283; }
  .site-footer__logotypes-title {
    color: #fff;
    font-size: 1rem;
    margin: 0 0 1rem;
    text-align: center; }
    @media print, screen and (min-width: 48em) {
      .site-footer__logotypes-title {
        width: 12.75rem; } }
    @media screen and (min-width: 75em) {
      .site-footer__logotypes-title {
        width: 15rem; } }
  .site-footer__logotypes-list {
    display: block;
    float: left;
    list-style: none;
    margin: 0 2rem;
    padding: 0;
    width: 8.75rem; }
    @media screen and (min-width: 75em) {
      .site-footer__logotypes-list {
        margin: 0 3.125rem; } }
  .site-footer__logotypes-list-element {
    display: block;
    float: left; }
  .site-footer__logotypes-list-table {
    display: table;
    height: 100%;
    width: 100%; }
  .site-footer__logotypes-list-table-cell {
    display: table-cell;
    vertical-align: middle; }
  .site-footer__logotypes-list-image {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-height: 6.25rem; }
  .site-footer__social-column .social-nav {
    float: none;
    line-height: 1.625rem;
    margin: 0; }
    .site-footer__social-column .social-nav__link {
      color: #fff; }
      .site-footer__social-column .social-nav__link:hover {
        color: #008283; }
    @media screen and (min-width: 60em) {
      .site-footer__social-column .social-nav {
        float: right; } }
  .site-footer__bottom-column {
    margin-top: 2.75rem; }
    .site-footer__bottom-column p {
      color: rgba(255, 255, 255, 0.75);
      font-family: Arial, sans-serif;
      font-size: .75rem;
      line-height: 1.5em;
      margin: 0; }
      .site-footer__bottom-column p a {
        color: inherit;
        text-decoration: underline; }
        .site-footer__bottom-column p a:hover {
          color: #008283; }
  .site-footer .footer-newsletter-section__button {
    background: none;
    font-family: 'Arial', sans-serif;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none; }
    .site-footer .footer-newsletter-section__button:hover {
      background: #fff;
      border-color: #fff;
      color: #072e43; }

.footer-newsletter-section {
  color: #fff;
  font-size: .75rem;
  padding-top: .625rem; }
  .footer-newsletter-section__title {
    font-family: 'Arial', sans-serif;
    margin: 0 0 .5rem; }
  .footer-newsletter-section__desc {
    font-family: 'Arial', sans-serif;
    line-height: 1.5em;
    margin: 0 0 1.5rem; }
  .footer-newsletter-section__input {
    background: #fff;
    border: 0;
    border-radius: .75rem;
    display: block;
    float: left;
    font-family: 'Arial', sans-serif;
    font-size: 1rem;
    height: 2.9375rem;
    line-height: 1.3125em;
    outline: none;
    padding: .75rem 1.25rem;
    width: calc(100% - 10.25rem); }
  .footer-newsletter-section__button {
    color: #fff;
    display: block;
    float: right;
    font-size: 1rem; }

.newsletter-section-widget .footer-newsletter-section__desc {
  display: none; }

.newsletter-section-widget .footer-newsletter-section__input {
  width: 100%; }

.newsletter-section-widget .footer-newsletter-section__button {
  background: #008283;
  border: 0;
  margin-top: .75rem; }
  .newsletter-section-widget .footer-newsletter-section__button:hover {
    background: #015f5f; }

@media all and (max-width: 63.9375rem) {
  .site-footer .footer-newsletter-section__input {
    margin-bottom: .75rem;
    width: 100%; }
  .site-footer__logotypes-column {
    margin-bottom: 2.125rem; } }

@media all and (max-width: 47.9375rem) {
  .site-footer {
    padding-top: 0; }
    .site-footer__logo-link {
      display: block;
      margin: 0 -1.3125rem;
      padding: 1.125rem 0;
      text-align: center; }
    .site-footer__logo {
      max-height: 1.5rem; }
    .site-footer__nav-list {
      border-bottom: 1px solid rgba(255, 255, 255, 0.25);
      float: none;
      margin: 0 -1.3125rem;
      overflow: hidden; }
      .site-footer__nav-list .menu-item {
        border-right: 1px solid rgba(255, 255, 255, 0.25);
        border-top: 1px solid rgba(255, 255, 255, 0.25);
        width: 50%; }
        .site-footer__nav-list .menu-item > a {
          display: block;
          padding: 1rem .5rem;
          text-align: center; }
        .site-footer__nav-list .menu-item:nth-child(2n) {
          border-right: 0; }
    .site-footer__logotypes-column {
      margin-bottom: 1.25rem;
      text-align: center; }
    .site-footer__logotypes-list {
      display: inline-block;
      float: none; }
    .site-footer__social-column {
      margin-bottom: 3.125rem; }
      .site-footer__social-column .social-nav {
        float: none;
        text-align: center; }
    .site-footer .footer-newsletter-section {
      text-align: center; }
      .site-footer .footer-newsletter-section__title {
        font-size: .75rem; }
      .site-footer .footer-newsletter-section__button {
        width: 100%; }
    .site-footer__bottom-column {
      margin-top: 2.375rem; }
      .site-footer__bottom-column p {
        font-size: .625rem;
        text-align: center; } }

@media screen and (max-width: 26.1875rem) {
  .site-footer__logo-link {
    margin: 0 -1rem; }
  .site-footer__nav-list {
    margin: 0 -1rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.report-tile {
  background: #fff;
  border: solid 1px #d8d8d8; }
  .report-tile__latest {
    color: #072e43;
    font-weight: 600;
    margin: 0;
    padding: .75rem 1.25rem; }
    .report-tile__latest:before {
      content: '';
      margin-right: .5625rem;
      margin-top: -.125rem;
      vertical-align: middle;
      width: 0.8125em;
      height: 1em;
      background-position: -0.3125em -46.0625em; }
      .lt-ie9 .report-tile__latest:before {
        width: 12px;
        height: 15px;
        background-position: -5 -737px; }
  .report-tile__content {
    padding: 1.125rem 1.25rem 3.625rem; }
    .report-tile__content > p {
      color: #072e43;
      font-family: Arial, sans-serif;
      margin: 0; }
    .report-tile__content--homepage {
      padding: 1.3125rem 1.6785rem 1.5625rem; }
  .report-tile__image-link {
    border: 3px solid #fff;
    display: block;
    overflow: hidden; }
    .report-tile__image-link img {
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden;
      display: block;
      -webkit-transition: -webkit-transform 150ms ease-in;
      transition: -webkit-transform 150ms ease-in;
      transition: transform 150ms ease-in;
      transition: transform 150ms ease-in, -webkit-transform 150ms ease-in;
      width: 100%; }
  .report-tile__details {
    margin-bottom: .6875rem; }
    .report-tile__details--homepage {
      margin-bottom: .8125rem; }
  .report-tile__category {
    display: block;
    float: left;
    text-transform: uppercase; }
  .report-tile__date {
    color: #738684;
    display: block;
    float: right;
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .025em;
    line-height: 1.5rem; }
  .report-tile__title {
    font-size: 1.5rem;
    letter-spacing: .016em;
    margin: 0 0 1.125rem; }
    .report-tile__title--homepage {
      margin: 0 0 .3125rem; }
  .report-tile__title-link {
    color: #008283;
    line-height: 1.25em;
    text-decoration: none; }
  .report-tile__button {
    margin-top: 1.125rem; }
  .report-tile--homepage {
    border: 0;
    -webkit-box-shadow: 0 0.625rem 0.9375rem 0 rgba(50, 50, 50, 0.1);
            box-shadow: 0 0.625rem 0.9375rem 0 rgba(50, 50, 50, 0.1); }
  .report-tile--latest {
    border: 0;
    -webkit-box-shadow: 0 0 3rem 0 rgba(50, 50, 50, 0.15);
            box-shadow: 0 0 3rem 0 rgba(50, 50, 50, 0.15); }
  .report-tile:hover .report-tile__image-link img {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.category-label {
  background: #008283;
  color: #fff;
  display: inline-block;
  font-family: Arial, sans-serif;
  font-size: .75rem;
  font-weight: bold;
  line-height: 1rem;
  padding: .25rem .625rem;
  text-decoration: none; }
  .category-label[href] {
    -webkit-transition: background 200ms;
    transition: background 200ms; }
    .category-label[href]:hover {
      background: #015f5f;
      color: #fff; }
  .category-label--small {
    font-size: .5rem;
    line-height: .625rem;
    padding: .125rem .3125rem; }

@media all and (max-width: 47.9375rem) {
  .report-tile__latest {
    padding: .75rem 1rem; }
  .report-tile__content {
    padding: .75rem .625rem; }
    .report-tile__content > p {
      font-family: "Rubik", sans-serif;
      font-size: .875rem;
      line-height: 1.5rem; }
  .report-tile__title {
    font-size: 1.25rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.list-item {
  border-bottom: 1px solid #ddd;
  padding: 1.5rem 0; }
  .list-item__image-column--medium {
    width: 42.86%; }
  .list-item__image-column--big {
    width: 40%; }
  .list-item__image-link {
    display: block;
    overflow: hidden;
    position: relative; }
    .list-item__image-link img {
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden;
      display: block;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: -webkit-transform 150ms ease-in;
      transition: -webkit-transform 150ms ease-in;
      transition: transform 150ms ease-in;
      transition: transform 150ms ease-in, -webkit-transform 150ms ease-in;
      width: 100%; }
  .list-item__image-date {
    background: #fff;
    border-radius: .375rem;
    -webkit-box-shadow: 0 0.125rem 0.625rem 0 rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.125rem 0.625rem 0 rgba(0, 0, 0, 0.25);
    display: block;
    height: 2.25rem;
    left: 11.11%;
    overflow: hidden;
    position: absolute;
    top: 11.11%;
    width: 2.25rem; }
    .list-item__image-date--big {
      left: 1.25rem;
      top: 1.25rem; }
  .list-item__image-date-month {
    background: #072e43;
    color: #fff;
    display: block;
    font-family: "futura-pt", sans-serif;
    font-size: .5rem;
    font-weight: bold;
    height: .75rem;
    line-height: .75rem;
    text-align: center;
    text-transform: uppercase; }
  .list-item__image-date-day {
    color: #f03e39;
    display: block;
    font-family: "futura-pt", sans-serif;
    font-size: 1rem;
    font-weight: bold;
    height: 1.5rem;
    letter-spacing: .01875em;
    line-height: 1.5rem;
    text-align: center;
    text-transform: uppercase; }
  .list-item__top {
    margin: 0 0 .375rem; }
  .list-item__title-date {
    color: #072e43;
    display: none;
    float: left;
    font-size: .875rem;
    font-weight: 700;
    margin-right: .25rem; }
    .list-item__title-date--high {
      line-height: 1.5rem; }
    .list-item__title-date span {
      color: #f03e39; }
  .list-item__title {
    margin: 0 0 .25rem;
    padding-top: .375rem; }
    .list-item__title--no-top-padding {
      padding-top: 0; }
    .list-item__title--medium {
      display: inline; }
    .list-item__title--big {
      margin: 0 0 .1875rem;
      padding-top: .5625rem; }
  .list-item__title-link {
    color: #072e43;
    line-height: inherit;
    text-decoration: none; }
    .list-item__title-link:hover {
      color: #008283; }
    .list-item__title-link--inverted {
      color: #008283; }
      .list-item__title-link--inverted:hover {
        color: #072e43; }
  .list-item__date {
    color: #072e43;
    display: inline;
    font-size: .75rem;
    letter-spacing: .016em;
    line-height: 1.5em; }
    .list-item__date--big {
      display: block;
      margin: 0 0 .875rem; }
    .list-item__date--inline {
      margin-left: 1rem; }
  .list-item__content > p {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    margin: 0; }
  .list-item__content--medium {
    width: 57.14%; }
    .list-item__content--medium > p {
      font-size: 1rem; }
  .list-item__content--big {
    width: 60%; }
    .list-item__content--big > p {
      font-size: 1rem; }
  .list-item__read-more--big {
    margin-top: .9rem; }
  .list-item__read-more--mobile {
    display: none; }
  .list-item--last {
    border-bottom: 0; }
  .list-item--hidden {
    display: none; }
  .list-item--no-border {
    border-bottom: 0; }
  .list-item--home-news {
    margin-bottom: .75rem;
    padding: 0; }
  .list-item--half {
    border-bottom: 0;
    margin-bottom: 1.5rem;
    padding: 0; }
  .list-item:hover .list-item__image-link img {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

@media all and (max-width: 47.9375rem) {
  .list-item--home-news {
    margin-bottom: 1.875rem; }
  .list-item__title--medium {
    display: block; }
  .list-item__title--big {
    font-size: 1.5rem;
    line-height: 1.875rem;
    padding-top: 0; }
  .list-item__read-more--mobile {
    display: inline-block; } }

@media all and (max-width: 26.1875rem) {
  .list-item__image-column {
    margin-bottom: 1rem; }
    .list-item__image-column--medium {
      width: 100%; }
    .list-item__image-column--big {
      width: 100%; }
  .list-item__content--medium {
    width: 100%; }
    .list-item__content--medium > p {
      font-size: .875rem;
      line-height: 1.5rem; }
  .list-item__content--big {
    width: 100%; }
  .list-item__title--big {
    margin: 0 0 .875rem; }
  .list-item__read-more {
    margin-top: .75rem; }
  .list-item__title-date {
    display: inline-block; }
  .list-item__image-date--mobile-hide {
    display: none; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.tooltip-icon {
  background-color: #fff;
  border: .125rem solid;
  color: #008283;
  display: inline-block;
  height: 1.625rem;
  text-align: center;
  vertical-align: middle;
  width: 1.625rem;
  border-radius: 0.8125rem; }
  .tooltip-icon:before {
    content: '?';
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.375rem;
    vertical-align: top; }

.tooltip-wrap {
  color: #008283;
  font-weight: 600; }
  .tooltip-wrap .tooltip-icon {
    margin-right: .4375rem; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.resource-tile--about {
  position: relative; }

.resource-tile__top {
  margin-bottom: .5rem; }

.resource-tile__category-icon {
  background-position: left center;
  background-repeat: no-repeat;
  -webkit-background-size: contain;
          background-size: contain;
  display: block;
  float: left;
  height: 1.875rem;
  width: 1.875rem; }

.resource-tile__about-icon {
  background-position: left center;
  background-repeat: no-repeat;
  -webkit-background-size: contain;
          background-size: contain;
  display: block;
  height: 1.875rem;
  left: 0;
  position: absolute;
  top: 0;
  width: 1.875rem; }

.resource-tile__category-label {
  display: block;
  float: left;
  margin-left: .625rem;
  margin-top: .375rem; }

.resource-tile__content {
  padding-left: 2.5rem; }

.resource-tile__title {
  margin: 0 0 .3125rem; }

.resource-tile__title-link {
  color: #072e43;
  text-decoration: none; }
  .resource-tile__title-link:hover {
    color: #008283; }

.resource-tile__desc {
  color: #072e43;
  font-family: "Rubik", sans-serif;
  font-size: .75rem;
  margin: 0 0 1rem; }

.resource-tile__link {
  font-family: "futura-pt", sans-serif;
  font-size: .75rem;
  font-weight: bold;
  letter-spacing: .06em;
  text-transform: uppercase; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.breadcrumbs {
  background-color: #efefef;
  color: #072e43;
  left: 0;
  position: absolute;
  top: 0;
  -webkit-transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  transition: transform 550ms ease-out, opacity 550ms, visibility 550ms;
  transition: transform 550ms ease-out, opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  width: 100%;
  z-index: 2; }
  .breadcrumbs__list {
    display: block;
    font-size: .75rem;
    line-height: 1.25em;
    list-style: none;
    margin: 0;
    padding: .6875rem 0 .625rem; }
  .breadcrumbs__element {
    display: inline-block; }
    .breadcrumbs__element:after {
      color: #738684;
      content: '/';
      padding: 0 .4375rem; }
    .breadcrumbs__element:last-child:after {
      display: none; }
  .breadcrumbs__link {
    color: #738684;
    line-height: inherit;
    text-decoration: none; }
  .breadcrumbs--blue {
    background-color: rgba(7, 46, 68, 0.75);
    color: #fff; }
    .breadcrumbs--blue a {
      color: rgba(255, 255, 255, 0.5); }
      .breadcrumbs--blue a:hover {
        color: #fff; }
  .breadcrumbs.showing-video {
    opacity: 0;
    -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
            transform: translateY(-100%);
    visibility: hidden; }

@media screen and (max-width: 47.9375rem) {
  .breadcrumbs {
    display: none; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.related-link {
  background-color: rgba(108, 160, 201, 0.1);
  -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
  color: #072e43;
  padding: .4375rem 1.3125rem 1.5rem;
  width: 64%; }
  .related-link__top {
    border-bottom: 1px solid;
    letter-spacing: .01875rem;
    margin: 0 0 .6875rem;
    padding: 0 0 .3125rem;
    text-transform: uppercase; }
  .related-link__image-link {
    display: block;
    overflow: hidden;
    width: 100%; }
  .related-link__image {
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    display: block;
    max-width: none;
    -webkit-transform: scale(1.02);
        -ms-transform: scale(1.02);
            transform: scale(1.02);
    -webkit-transition: -webkit-transform 150ms ease-in;
    transition: -webkit-transform 150ms ease-in;
    transition: transform 150ms ease-in;
    transition: transform 150ms ease-in, -webkit-transform 150ms ease-in;
    width: 100%; }
  .related-link__title {
    margin: .4375rem 0 .25rem; }
  .related-link__title-link {
    color: #072e43;
    text-decoration: none; }
    .related-link__title-link:hover {
      color: #008283; }
  .related-link p.related-link-desc {
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    line-height: 1.5em;
    margin: .25rem 0 .8125rem; }
  .related-link--left {
    float: left;
    margin: -.75rem 2.375rem 0 -12.5rem; }
  .related-link:hover .related-link__image {
    -webkit-transform: scale(1.07);
        -ms-transform: scale(1.07);
            transform: scale(1.07);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }
  .related-link + *:after {
    clear: both;
    content: '';
    display: block;
    height: 0; }

@media screen and (max-width: 78.25rem) {
  .related-link--left {
    margin-left: -13%; } }

@media screen and (max-width: 59.9375rem) {
  .related-link {
    float: none;
    margin-bottom: 2.5rem;
    margin-left: 0;
    margin-right: 0;
    width: auto; } }

@media screen and (max-width: 47.9375rem) {
  .related-link {
    margin-left: -1.3125rem;
    margin-right: -1.3125rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; } }

@media screen and (max-width: 26.1875rem) {
  .related-link {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
    .related-link .row .columns {
      width: 50%; }
      .related-link .row .columns:last-child {
        padding-left: .875rem; }
    .related-link__title {
      font-size: .75rem;
      line-height: 1.5em;
      margin: .3125rem 0; }
    .related-link p.related-link-desc {
      font-size: .625rem;
      line-height: .75rem; }
    .related-link .button {
      border: 0;
      padding: 0; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.newsletter-section {
  background-color: #072e43;
  background-image: url("../img/newsletter-bg.svg");
  background-position: 50% 20%;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover;
  color: #fff;
  padding-bottom: 5.5625rem;
  padding-top: 5.375rem; }
  .newsletter-section__title {
    margin: 0 0 1.125rem; }
  .newsletter-section .textwidget p {
    font-family: "Rubik", sans-serif;
    letter-spacing: .01875rem;
    margin: 0; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.wp-caption {
  margin: 3.0625rem -12.5rem 3.75rem;
  max-width: none !important;
  position: relative; }
  .wp-caption img {
    position: relative; }
  .wp-caption__bar {
    background-color: rgba(7, 46, 68, 0.5);
    bottom: 0;
    color: #fff;
    left: 0;
    line-height: 1.5rem;
    padding: .625rem 1.875rem .875rem;
    position: absolute;
    width: 100%; }
  .wp-caption__text-wrap {
    float: left;
    letter-spacing: .01875rem; }
  .wp-caption__head {
    display: inline-block;
    font-size: .75rem;
    font-weight: 600;
    margin-right: 1rem;
    vertical-align: middle; }
    .wp-caption__head--share {
      margin-right: 0; }
  .wp-caption__text {
    display: inline-block;
    font-family: "Rubik", sans-serif;
    vertical-align: middle; }
  .wp-caption__share-wrap {
    float: right; }
  .wp-caption__share-btn {
    color: rgba(255, 255, 255, 0.5);
    display: inline-block;
    margin-left: 1.75rem; }
    .wp-caption__share-btn:hover {
      color: #fff; }
  .wp-caption__share-icon {
    line-height: inherit;
    vertical-align: middle; }

.single .wp-caption {
  margin: 3.0625rem 0 3.75rem; }

@media screen and (max-width: 78.25rem) {
  .wp-caption__text {
    font-size: .75rem; } }

@media screen and (max-width: 64rem) {
  .wp-caption {
    margin: 3.0625rem -7.5rem 3.75rem; }
  .single .wp-caption {
    margin: 3.0625rem 0 3.75rem; } }

@media screen and (max-width: 59.9375rem) {
  .wp-caption {
    margin: 2.5rem -2.875rem 3rem; }
    .wp-caption__bar {
      background: #6ca0ca;
      bottom: auto;
      color: #fff;
      left: auto;
      padding: .75rem 1rem 2rem;
      position: static;
      text-align: center; }
    .wp-caption__text-wrap {
      float: none;
      margin-bottom: 1.5rem; }
    .wp-caption__share-wrap {
      float: none; }
    .wp-caption__head {
      display: block;
      margin-right: 0; }
      .wp-caption__head--share {
        margin-bottom: .75rem; }
    .wp-caption__share-btn:first-of-type {
      margin-left: 0; }
  .single .wp-caption {
    margin: 2.5rem 0 3rem; } }

@media screen and (max-width: 47.9375rem) {
  .wp-caption {
    margin: 2rem -1.3125rem 2.5rem; }
  .single .wp-caption {
    margin: 2rem -1.3125rem 2.5rem; } }

@media screen and (max-width: 26.1875rem) {
  .wp-caption {
    margin: 2rem -1rem 2.5rem; }
  .single .wp-caption {
    margin: 2rem -1rem 2.5rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.key-term-block {
  background-color: rgba(108, 160, 201, 0.1);
  -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
  padding: 1.1875rem 1.1875rem 1.875rem;
  width: 23.75rem; }
  .key-term-block__top {
    margin-bottom: 1.875rem; }
  .key-term-block__article {
    padding-left: 3.75rem;
    position: relative; }
    .key-term-block__article:before {
      content: '';
      display: block;
      left: 0;
      position: absolute;
      top: .25rem;
      width: 1.9375em;
      height: 1.9375em;
      background-position: -0.3125em -48.875em; }
      .lt-ie9 .key-term-block__article:before {
        width: 30px;
        height: 30px;
        background-position: -5 -782px; }
  .key-term-block__article-title {
    margin: 0 0 .6875rem; }
  .key-term-block__article-title-link {
    color: #072e43;
    text-decoration: none; }
    .key-term-block__article-title-link:hover {
      color: #008283; }
  .key-term-block__article-desc {
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    letter-spacing: .0125rem;
    line-height: 1.5em;
    margin: 0 0 1.125rem; }
  .key-term-block--left {
    float: left;
    margin: 0 3.875rem 1rem 0; }

.post-content .key-term-block__article-desc {
  font-family: "Rubik", sans-serif;
  font-size: .75rem;
  letter-spacing: .0125rem;
  line-height: 1.5em;
  margin: 0 0 1.125rem; }

@media screen and (max-width: 64rem) {
  .key-term-block {
    margin-right: 2rem;
    width: 50%; }
    .key-term-block__article {
      padding-left: 0; }
    .key-term-block__article-title {
      margin: 0 0 1rem;
      padding-left: 3rem; } }

@media screen and (max-width: 26.1875rem) {
  .key-term-block {
    float: none;
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    width: auto; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.report-block {
  background-color: #fff;
  -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.13);
          box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.13);
  margin: 0 -3.5rem 3rem;
  padding: 1.5rem 3.5rem; }
  .report-block__title {
    margin: 2.25rem 0 1.5rem; }
  .report-block__title-link {
    color: #008283;
    text-decoration: none; }
    .report-block__title-link:hover {
      color: #008283; }
  .report-block__image-link {
    display: block;
    margin-right: -2.25rem; }
  .report-block__button {
    margin-top: 1.8125rem; }
  .report-block p.report-block-desc {
    font-size: 1rem;
    margin: 0; }

@media screen and (max-width: 80.625rem) {
  .report-block {
    margin-left: -2rem;
    margin-right: -2rem;
    padding-left: 2rem;
    padding-right: 2rem; }
    .report-block__image-link {
      margin-right: 0; } }

@media screen and (max-width: 64rem) {
  .report-block__title {
    margin-top: 0; } }

@media screen and (max-width: 59.9375rem) {
  .report-block {
    margin-left: -2.875rem;
    margin-right: -2.875rem;
    padding-left: 2.875rem;
    padding-right: 2.875rem; } }

@media screen and (max-width: 47.9375rem) {
  .report-block {
    margin-left: -1.3125rem;
    margin-right: -1.3125rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; } }

@media screen and (max-width: 26.1875rem) {
  .report-block {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
    .report-block .row .columns:first-child {
      margin-bottom: 1rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.report-item__image-link {
  display: block;
  overflow: hidden; }
  .report-item__image-link img {
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    display: block;
    -webkit-transition: -webkit-transform 150ms ease-in;
    transition: -webkit-transform 150ms ease-in;
    transition: transform 150ms ease-in;
    transition: transform 150ms ease-in, -webkit-transform 150ms ease-in; }

.report-item__title {
  margin: 0 0 .4375rem; }

.report-item__title-link {
  text-decoration: none; }

.report-item__category {
  display: block;
  float: left; }

.report-item__date {
  color: #738684;
  display: block;
  float: right;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .01875rem;
  line-height: .875rem; }

.report-item:hover .report-item__image-link img {
  -webkit-transform: scale(1.05);
      -ms-transform: scale(1.05);
          transform: scale(1.05);
  -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.play-button {
  background-color: #008283;
  border-radius: 50%;
  -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
  cursor: pointer;
  display: block;
  height: 9.35rem;
  outline: none;
  position: relative;
  width: 9.35rem;
  z-index: 2; }
  .play-button__icon {
    color: #fff;
    font-size: 2.5rem !important;
    height: 2.5rem;
    margin-right: -.5rem;
    position: relative;
    width: 2.5rem; }
  .play-button:before {
    background-color: #008283;
    border-radius: 50%;
    content: '';
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .play-button::after {
    background: -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0.1)), to(#fff));
    background: -webkit-linear-gradient(bottom, rgba(255, 255, 255, 0.1), #fff);
    background: linear-gradient(to top, rgba(255, 255, 255, 0.1), #fff);
    border-radius: 5rem;
    bottom: -.3125rem;
    content: '';
    left: -.3125rem;
    position: absolute;
    right: -.3125rem;
    top: -.3125rem;
    z-index: -1; }

@media screen and (max-width: 47.9375rem) {
  .play-button {
    height: 4.5rem;
    width: 4.5rem; }
    .play-button__icon {
      font-size: 1rem;
      height: 1rem;
      margin-right: -.25rem;
      width: 1rem; }
    .play-button:after {
      bottom: -.16rem;
      left: -.16rem;
      right: -.16rem;
      top: -.16rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.external-link {
  display: inline-block;
  font-family: 'futura-pt', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5em; }
  .external-link__icon {
    display: inline-block;
    font-size: .75em;
    margin-left: .5rem;
    margin-top: -.125em;
    vertical-align: middle; }

.post-content p a.external-link {
  font-weight: 400; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.sticky-navbar {
  background: #fff;
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd;
  -webkit-transition: -webkit-box-shadow 200ms;
  transition: -webkit-box-shadow 200ms;
  transition: box-shadow 200ms;
  transition: box-shadow 200ms, -webkit-box-shadow 200ms; }
  .sticky-navbar__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: .75rem 0; }
  .sticky-navbar__list-element {
    display: block;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    text-align: center; }
    .sticky-navbar__list-element:first-child {
      text-align: left; }
    .sticky-navbar__list-element:last-child {
      text-align: right; }
  .sticky-navbar__list-element-link {
    border-radius: 1.125rem;
    color: #738684;
    display: inline-block;
    padding: .375rem 1.25rem;
    text-decoration: none;
    -webkit-transition: background-color 250ms ease-out, color 250ms ease-out;
    transition: background-color 250ms ease-out, color 250ms ease-out; }
    .sticky-navbar__list-element-link:hover {
      background-color: #008283;
      color: #fff; }
    .sticky-navbar__list-element-link--active {
      background-color: #008283;
      color: #fff; }
  .sticky-navbar--sticky {
    -webkit-box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
    left: 0;
    position: fixed;
    width: 100%;
    z-index: 4; }

@media screen and (max-width: 59.9375rem) {
  .sticky-navbar__list-element-link {
    padding: .375rem .75rem; } }

@media screen and (max-width: 47.9375rem) {
  .sticky-navbar__row {
    overflow-x: scroll; }
  .sticky-navbar__list {
    display: block;
    overflow: hidden; }
  .sticky-navbar__list-element {
    float: left;
    margin-right: .25rem;
    text-align: center; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.login-modal {
  background: #072e43;
  border-bottom: 1px solid rgba(179, 182, 61, 0.25);
  color: #fff;
  height: calc(100vh - 7.375rem);
  opacity: 0;
  overflow: hidden;
  padding-bottom: 2rem;
  position: fixed;
  top: 7.375rem;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  transition: transform 550ms ease-out, opacity 550ms, visibility 550ms;
  transition: transform 550ms ease-out, opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  visibility: hidden;
  width: 100%;
  z-index: 4; }
  .login-modal:before {
    content: '';
    display: block;
    left: 0;
    position: absolute;
    top: 0;
    width: 40.75em;
    height: 27.25em;
    background-position: -0.3125em -18.25em; }
    .lt-ie9 .login-modal:before {
      width: 651px;
      height: 435px;
      background-position: -5 -292px; }
  .login-modal__view {
    display: none;
    opacity: 0;
    position: relative;
    -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
            transform: translateY(100%);
    -webkit-transition: opacity 500ms ease-out, -webkit-transform 500ms ease-out;
    transition: opacity 500ms ease-out, -webkit-transform 500ms ease-out;
    transition: opacity 500ms ease-out, transform 500ms ease-out;
    transition: opacity 500ms ease-out, transform 500ms ease-out, -webkit-transform 500ms ease-out; }
    .login-modal__view--display {
      display: block; }
    .login-modal__view--visible {
      opacity: 1;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .login-modal__view--transform {
      opacity: 0;
      -webkit-transform: translateY(-100%);
          -ms-transform: translateY(-100%);
              transform: translateY(-100%);
      -webkit-transition: opacity 500ms ease-in, -webkit-transform 500ms ease-in;
      transition: opacity 500ms ease-in, -webkit-transform 500ms ease-in;
      transition: opacity 500ms ease-in, transform 500ms ease-in;
      transition: opacity 500ms ease-in, transform 500ms ease-in, -webkit-transform 500ms ease-in; }
  .login-modal__title {
    display: block;
    margin: 3.25rem auto 1.375rem;
    padding-bottom: .5em;
    position: relative;
    text-align: center; }
    .login-modal__title:after {
      background: #008283;
      bottom: 0;
      content: '';
      display: block;
      height: 2px;
      left: 0;
      margin: 0 auto;
      position: absolute;
      right: 0;
      width: 3.125rem; }
  .login-modal__field-wrap {
    margin: 0 0 2.125rem;
    padding-top: 1.125rem;
    position: relative; }
    .login-modal__field-wrap label {
      display: block;
      font-family: 'futura-pt', sans-serif;
      font-size: .875rem;
      left: .625rem;
      line-height: 1.125rem;
      position: absolute;
      top: 1.5625rem;
      -webkit-transition: top 200ms;
      transition: top 200ms;
      z-index: 1; }
      .login-modal__field-wrap label.filled {
        top: 0; }
  .login-modal__field-error {
    display: none; }
    .login-modal__field-error--visible {
      display: block;
      font-size: .75rem;
      margin: .25rem 0; }
  .login-modal input[type='text'], .login-modal input[type='email'], .login-modal input[type='password'] {
    background: none;
    border-bottom: 2px solid #fff;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    color: #fff;
    display: block;
    font-family: 'futura-pt', sans-serif;
    font-size: 1.5rem;
    line-height: 2rem;
    outline: none;
    padding: 0 1rem;
    position: relative;
    -webkit-transition: border-bottom-color 200ms, padding 200ms, color 200ms;
    transition: border-bottom-color 200ms, padding 200ms, color 200ms;
    width: 100%;
    z-index: 2; }
    .login-modal input[type='text'].filled, .login-modal input[type='text']:focus, .login-modal input[type='email'].filled, .login-modal input[type='email']:focus, .login-modal input[type='password'].filled, .login-modal input[type='password']:focus {
      padding: .375rem 1rem .25rem; }
    .login-modal input[type='text']:focus, .login-modal input[type='email']:focus, .login-modal input[type='password']:focus {
      border-bottom-color: #008283; }
      .login-modal input[type='text']:focus + label, .login-modal input[type='email']:focus + label, .login-modal input[type='password']:focus + label {
        top: 0; }
    .login-modal input[type='text'].is-invalid-input, .login-modal input[type='email'].is-invalid-input, .login-modal input[type='password'].is-invalid-input {
      border-bottom-color: #f03e39; }
  .login-modal select {
    background: none;
    border-bottom: 2px solid #fff;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    color: #fff;
    display: block;
    font-family: 'futura-pt', sans-serif;
    font-size: 1.5rem;
    line-height: 2rem;
    outline: none;
    padding: .375rem 1rem .25rem;
    position: relative;
    -webkit-transition: border-bottom-color 200ms, padding 200ms, color 200ms;
    transition: border-bottom-color 200ms, padding 200ms, color 200ms;
    width: 100%;
    z-index: 2; }
    .login-modal select option {
      color: #072e43; }
    .login-modal select:focus {
      border-bottom-color: #008283; }
  .login-modal .login-additional {
    margin: 0 0 2.25rem; }
  .login-modal .login-remember {
    float: left;
    margin: 0; }
  .login-modal .login-forgot {
    float: right;
    margin: 0; }
    .login-modal .login-forgot a {
      color: #fff; }
      .login-modal .login-forgot a:hover {
        color: #008283; }
  .login-modal .login-submit {
    margin: 0 0 2.75rem; }
  .login-modal .login-message {
    text-align: center; }
  .login-modal__account-notice {
    font-weight: 700;
    margin: 0;
    text-align: center; }
  .login-modal__account-notice-link {
    color: #fff;
    display: inline-block;
    font-weight: 400;
    margin-left: 1em; }
    .login-modal__account-notice-link:hover {
      color: #008283; }
  .login-modal__register-why {
    background: #f0f5f9;
    border: solid 3px #fff;
    color: #072e43;
    padding: 3.25rem 1.875rem 2.5rem; }
  .login-modal__register-why-widget .textwidget {
    font-family: "Rubik", sans-serif; }
    .login-modal__register-why-widget .textwidget p {
      margin: 0 0 2.25rem; }
    .login-modal__register-why-widget .textwidget ul {
      color: #008283;
      padding: 0 0 0 1rem; }
      .login-modal__register-why-widget .textwidget ul li {
        margin: 0 0 1.5rem; }
  .login-modal__register-why-title {
    margin: 0 0 .75rem; }
  .login-modal .register-newsletter {
    margin: 0 0 2rem; }
  .login-modal__forgotten-password form.email-sent .forgotten-password-email,
  .login-modal__forgotten-password form.email-sent .login-submit {
    display: none; }
  .login-modal__forgotten-password-desc {
    font-family: "Rubik", sans-serif;
    margin: 0 0 3.375rem; }
  .login-modal--visible {
    opacity: 1;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    visibility: visible; }

.modal-checkbox {
  display: none; }
  .modal-checkbox:checked + label:after {
    opacity: 1; }

.modal-label {
  display: block;
  font-size: .75rem;
  font-weight: 500;
  line-height: 1.5rem;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .modal-label:before {
    background: #fff;
    border-radius: 2px;
    content: '';
    cursor: pointer;
    display: inline-block;
    height: 1.5rem;
    margin-right: .625rem;
    vertical-align: top;
    width: 1.5rem; }
  .modal-label:after {
    color: #072e43;
    content: '✔';
    cursor: pointer;
    display: block;
    font-size: 1.5rem;
    height: 1.5rem;
    left: 0;
    opacity: 0;
    position: absolute;
    text-align: center;
    top: 0;
    -webkit-transition: opacity 100ms;
    transition: opacity 100ms;
    width: 1.5rem; }

.login-modal-opened .login-modal {
  height: auto;
  min-height: calc(100vh - 10rem);
  position: relative;
  top: auto; }

.admin-bar .login-modal {
  margin-top: 32px; }

@media all and (max-width: 59.9375rem) {
  .login-modal {
    height: calc(100vh - 4.5rem);
    top: 4.5rem; }
    .login-modal__register-why {
      margin-top: 2rem; }
    .login-modal__title {
      margin-top: 2rem; } }

@media all and (max-width: 47.9375rem) {
  .login-modal {
    height: calc(100vh - 3rem);
    top: 3rem; }
    .login-modal__register > .columns:last-child {
      display: none; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.report-popup {
  background: #f0f5f9;
  -webkit-box-shadow: 0 5px 25px 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 5px 25px 0 rgba(0, 0, 0, 0.15);
  color: #072e44;
  left: 0;
  margin: 0 auto;
  max-width: 36.25rem;
  padding: 1.1875rem 1.1875rem 1.75rem;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 96%; }
  @media screen and (max-width: 47.9375em) {
    .report-popup {
      height: 100%;
      max-width: none;
      overflow-y: scroll;
      top: 0;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none;
      width: 100%; } }
  .report-popup__title {
    border-bottom: 1px solid;
    display: block;
    font-family: "futura-pt", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .0125em;
    line-height: 1.5rem;
    margin-bottom: 1.3125rem;
    padding-bottom: .3125rem;
    text-transform: uppercase; }
  .report-popup__content {
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    letter-spacing: .01667em;
    line-height: 1.125rem;
    margin-bottom: 1.875rem; }
    .report-popup__content p {
      letter-spacing: inherit;
      line-height: inherit;
      margin: 0; }
      .report-popup__content p:not(:last-child) {
        margin-bottom: 1.125rem; }
  .report-popup__buttons {
    overflow: hidden; }
  .report-popup__btn {
    color: #072e44;
    cursor: pointer;
    display: block;
    float: left;
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    letter-spacing: .01667em;
    line-height: 1.25rem;
    outline: none;
    padding-left: 1.625rem;
    position: relative; }
    .report-popup__btn:before, .report-popup__btn:after {
      display: block;
      height: 1.25rem;
      left: 0;
      position: absolute;
      top: 0;
      vertical-align: top;
      width: 1.25rem; }
    .report-popup__btn:before {
      border: 1px solid;
      content: ''; }
    .report-popup__btn:after {
      content: '✕';
      font-size: 1.125rem;
      opacity: 0;
      text-align: center;
      -webkit-transition: opacity .15s;
      transition: opacity .15s; }
    .report-popup__btn:hover:after {
      opacity: 1; }
  .report-popup__accept-btn {
    margin-right: 4.375rem; }

.report-popup-wrapper {
  background: rgba(0, 0, 0, 0.2);
  height: 100%;
  left: 0;
  opacity: 0;
  position: fixed;
  top: 0;
  -webkit-transition: opacity .4s, visibility .4s;
  transition: opacity .4s, visibility .4s;
  visibility: hidden;
  width: 100%;
  z-index: 10; }
  .report-popup-wrapper.visible {
    opacity: 1;
    visibility: visible; }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.home-top {
  background: url("../img/homepage-top-background.svg") no-repeat center center;
  -webkit-background-size: cover;
          background-size: cover;
  color: #fff;
  min-height: 480px;
  padding-bottom: 6rem;
  padding-top: 4.5rem;
  position: relative;
  z-index: 2; }
  .home-top__content h1 {
    margin: 0; }
  .home-top__content p {
    margin: 1rem 0 0; }
  .home-top__content .button {
    margin-top: .75rem; }
  .home-top__report-column {
    position: relative; }
    .home-top__report-column .report-tile {
      position: absolute;
      right: .625rem;
      top: -2.375rem;
      width: calc(100% - 1.25rem); }

.home-content {
  background: #fff;
  padding-bottom: 3.75rem;
  padding-top: 2.3125rem; }

.home-reports__categories {
  border-bottom: 1px solid #ddd;
  display: block;
  list-style: none;
  margin: 0;
  padding: 1.1875rem 0; }

.home-reports__category {
  display: block;
  float: left;
  margin-right: 2.375rem; }

.home-reports__category-button {
  color: #008283;
  cursor: pointer;
  outline: none;
  text-decoration: underline; }
  .home-reports__category-button--active {
    color: #072e43;
    cursor: default;
    text-decoration: none; }

.home-reports__reports .list-item__row--small.row {
  max-width: 37.5rem; }

.home-reports__reports-item--hidden {
  display: none; }

.home-reports__reports-item--last .list-item {
  border-bottom: 0; }

.home-section-top {
  border-bottom: 1px solid #ddd;
  padding-bottom: 1rem; }
  .home-section-top__title {
    color: #072e43;
    float: left;
    margin: 0; }
  .home-section-top__link {
    display: block;
    float: right;
    margin-top: .1875rem; }
  .home-section-top--no-border {
    border-bottom: 0; }

.home-company-reports,
.home-news {
  margin-top: 7.25rem; }

.home-company-reports__row {
  background-color: rgba(108, 160, 201, 0.1);
  padding-bottom: 1.0625rem;
  padding-top: 1.1875rem; }

.home-company-reports__image {
  display: block;
  margin: 0 auto;
  min-height: 10.5rem;
  width: 9.625em;
  height: 10.5625em;
  background-position: -0.3125em -2.125em; }
  .lt-ie9 .home-company-reports__image {
    width: 153px;
    height: 168px;
    background-position: -5 -34px; }

.home-company-reports__title-wrapper {
  margin-bottom: .375rem;
  position: relative; }
  .home-company-reports__title-wrapper .tooltip-icon {
    left: -2.25rem;
    outline: none;
    position: absolute;
    top: .125rem; }

.home-company-reports__title {
  color: #072e43;
  margin: 0; }

.home-company-reports__desc {
  color: #072e43;
  margin: 0 0 .6875rem; }

.home-company-reports + .home-news {
  margin-top: 1rem; }

.home-news {
  padding-top: 1rem; }
  .home-news__top {
    margin-bottom: 1rem; }

.home-award {
  background-color: rgba(108, 160, 201, 0.1);
  padding-bottom: .75rem;
  padding-top: .75rem; }
  .home-award__content {
    color: #072e43; }
    .home-award__content h1,
    .home-award__content h2,
    .home-award__content h3 {
      margin-bottom: 1.0625rem;
      margin-top: 2.8125rem; }
    .home-award__content p {
      font-family: "Rubik", sans-serif;
      margin: 0 0 1.5rem; }
  .home-award__image {
    border: solid .1875rem #fff;
    -webkit-box-shadow: 0 0.125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
            box-shadow: 0 0.125rem 1.5625rem 0 rgba(0, 0, 0, 0.15); }

.home-resources {
  background: #fff;
  padding-bottom: 5.1875rem;
  padding-top: 3.0625rem; }
  .home-resources__top {
    margin-bottom: 1.25rem; }
  .home-resources__grid-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

@media all and (max-width: 68.75rem) {
  .home-company-reports,
  .home-news {
    margin-top: 3.25rem; }
  .home-company-reports + .home-news {
    margin-top: 1rem; }
  .home-news__top-title {
    font-size: 1.25rem; }
  .home-news__top-link {
    margin-top: 0; } }

@media all and (max-width: 63.9375rem) {
  .home-company-reports,
  .home-news {
    margin-top: 1rem; }
  .home-award__content h1,
  .home-award__content h2,
  .home-award__content h3 {
    margin-top: 1rem; }
  .home-resources {
    padding-bottom: 2.5rem;
    padding-top: 2.5rem; }
    .home-resources__grid > .row > .columns {
      margin-bottom: 2.5rem; } }

@media all and (max-width: 47.9375rem) {
  .home-top {
    padding-bottom: 0;
    padding-top: 2.125rem; }
    .home-top__content {
      text-align: center; }
      .home-top__content p {
        font-size: .875rem; }
    .home-top__report-column {
      background: #fff;
      float: none;
      margin: 4.5rem -1rem 0;
      padding: 0 .3125rem;
      width: auto; }
      .home-top__report-column .report-tile {
        margin-top: -2.25rem;
        position: static;
        right: auto;
        top: auto;
        width: 100%; }
  .home-content {
    padding-bottom: 1.25rem; }
  .home-reports .list-item__row--small .small-4 {
    width: 29.16%; }
  .home-reports .list-item__row--small .small-8 {
    margin-left: 4.18%;
    width: 66.66%; }
  .home-reports .list-item__title--small {
    font-size: .875rem;
    padding-top: 0; }
  .home-section-top__link {
    margin-top: 0; }
  .home-company-reports__row.row.collapse {
    margin-left: -1.3125rem;
    margin-right: -1.3125rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; }
  .home-news .list-item__row .small-5 {
    width: 29.16%; }
  .home-news .list-item__row .small-7 {
    margin-left: 4.18%;
    width: 66.66%; }
  .home-news .list-item__title {
    font-size: .875rem;
    padding-top: 0; }
  .home-award {
    padding-bottom: 1.25rem; }
    .home-award__content {
      text-align: center; }
      .home-award__content h1,
      .home-award__content h2,
      .home-award__content h3 {
        font-size: 1.25rem; }
  .home-resources {
    padding-bottom: .5rem; } }

@media screen and (max-width: 26.1875rem) {
  .home-section-top--mobile-centered {
    text-align: center; }
  .home-section-top__title--mobile-centered {
    display: inline-block;
    float: none;
    margin-bottom: .875rem; }
  .home-section-top__link--mobile-centered {
    display: inline-block;
    float: none; }
  .home-company-reports .small-5 {
    width: 25%; }
  .home-company-reports__image {
    -webkit-transform: scale(0.5);
        -ms-transform: scale(0.5);
            transform: scale(0.5);
    -webkit-transform-origin: 0 0;
        -ms-transform-origin: 0 0;
            transform-origin: 0 0; }
  .home-company-reports .small-7 {
    margin-left: 10%;
    width: 65%; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.blog-top {
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover;
  padding-bottom: 5.3125rem;
  padding-top: 7.1785rem;
  position: relative; }
  .blog-top__overlay {
    background-image: -webkit-gradient(linear, right top, left top, from(rgba(17, 90, 121, 0.8)), to(rgba(7, 46, 67, 0.8)));
    background-image: -webkit-linear-gradient(right, rgba(17, 90, 121, 0.8), rgba(7, 46, 67, 0.8));
    background-image: linear-gradient(to left, rgba(17, 90, 121, 0.8), rgba(7, 46, 67, 0.8));
    height: 100%;
    left: 0;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: 100%; }
  .blog-top__svg {
    display: block;
    position: absolute; }
    .blog-top__svg--top {
      left: 0;
      top: 0; }
    .blog-top__svg--middle {
      left: 64px;
      top: 120px; }
    .blog-top__svg--bottom {
      left: 213px;
      top: 285px; }
  .blog-top__row {
    position: relative; }
  .blog-top__featured {
    padding-top: 1.8125rem; }
  .blog-top__featured-title {
    margin: 0 0 1.625rem; }
  .blog-top__featured-title-link {
    color: #fff;
    text-decoration: none; }
    .blog-top__featured-title-link:hover {
      color: #008283; }
  .blog-top__featured-category {
    margin-bottom: 1.5625rem; }
  .blog-top__featured-excerpt {
    color: #fff;
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.3125rem; }
  .blog-top__editors-title {
    border-bottom: 1px solid #ddd;
    color: #fff;
    margin: 0 0 1.5rem;
    padding: 0 0 1rem;
    text-transform: uppercase; }
  .blog-top__editors-articles .list-item__image-link {
    -webkit-box-shadow: 0 0.125rem 1.5625rem 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 0.125rem 1.5625rem 0 rgba(0, 0, 0, 0.1); }
    .blog-top__editors-articles .list-item__image-link:after {
      border: 2px solid #fff;
      content: '';
      display: block;
      height: 100%;
      left: 0;
      position: absolute;
      top: 0;
      width: 100%; }
  .blog-top__editors-articles .list-item__title-link {
    color: #fff; }
    .blog-top__editors-articles .list-item__title-link:hover {
      color: #008283; }
  .blog-top__editors-articles .list-item__content > p {
    color: #fff; }
  .blog-top__editors-articles .list-item:last-child {
    margin-bottom: 0; }

.search-bar {
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd; }
  .search-bar__form {
    display: block;
    float: left;
    margin-left: -2.5rem;
    position: relative; }
  .search-bar__search-field {
    border: 1px solid #ddd;
    border-radius: 0 1.875rem 1.875rem 0;
    color: #072e43;
    font-family: inherit;
    font-size: 1rem;
    letter-spacing: .01875em;
    line-height: 1.5em;
    margin: -1px 0;
    min-width: 22.5rem;
    outline: none;
    padding: 1rem 4.0625rem 1.25rem 1.875rem; }
    .search-bar__search-field::-webkit-input-placeholder {
      color: #072e43; }
    .search-bar__search-field::-moz-placeholder {
      color: #072e43; }
    .search-bar__search-field:-ms-input-placeholder {
      color: #072e43; }
  .search-bar__search-button {
    background-color: #008283;
    border-radius: 1.4375rem;
    cursor: pointer;
    display: block;
    height: 2.875rem;
    outline: none;
    position: absolute;
    right: .4375rem;
    top: .4375rem;
    -webkit-transition: background-color 250ms;
    transition: background-color 250ms;
    width: 2.875rem; }
    .search-bar__search-button:after {
      content: '';
      width: 0.6875em;
      height: 0.6875em;
      background-position: -0.3125em -47.625em;
      -webkit-transform: scale(1.7);
          -ms-transform: scale(1.7);
              transform: scale(1.7); }
      .lt-ie9 .search-bar__search-button:after {
        width: 10px;
        height: 10px;
        background-position: -5 -762px; }
    .search-bar__search-button:hover {
      background-color: #072e43; }
  .search-bar__categories-scroller {
    float: right; }
  .search-bar__categories {
    display: block;
    float: right;
    font-size: 1.25rem;
    margin: 1.1875rem 0 0;
    padding: 0; }
  .search-bar__category {
    display: block;
    float: left;
    margin-left: 2.625rem; }
    .search-bar__category:first-child {
      margin-left: 0; }
  .search-bar__category-link {
    border-bottom: 1px solid;
    display: block;
    letter-spacing: .015em;
    line-height: 1em;
    text-decoration: none; }
    .search-bar__category-link--active {
      border-bottom: 0;
      color: #072e43; }

.blog-gray-box {
  background-color: #f0f5f9;
  margin: 0 auto 2.5625rem;
  max-width: 77.5rem;
  padding: 1.5rem 0 2.6875rem; }
  .blog-gray-box--editors-pick {
    background-color: rgba(108, 160, 201, 0.1);
    margin: 2.5625rem auto 0; }
  .blog-gray-box--popular {
    padding-bottom: 1.1875rem; }

.blog-section-top {
  border-bottom: 1px solid #ddd;
  padding-bottom: .25rem; }
  .blog-section-top--events {
    margin-bottom: 1.5rem; }
  .blog-section-top--events-filters {
    margin-bottom: 1rem; }
  .blog-section-top--gray-box {
    margin-bottom: 1.5rem;
    padding-bottom: .6875rem; }
  .blog-section-top--popular {
    padding-bottom: .6875rem; }
  .blog-section-top--blue-border {
    border-bottom: 1px solid #072e43; }
  .blog-section-top--medium-margin {
    margin-bottom: 1.25rem; }
  .blog-section-top--small-margin {
    margin-bottom: 1.1875rem; }
  .blog-section-top__title {
    color: #072e43;
    float: left;
    margin: 0;
    text-transform: uppercase; }
  .blog-section-top__link {
    float: right; }

.news-section {
  padding-bottom: 5rem;
  padding-top: 4.124rem; }
  .news-section__top {
    padding-bottom: 1.9375rem; }
  .news-section__top-news .list-item:last-child {
    border-bottom: 0; }
  .news-section__side-events-section {
    margin-bottom: 3.4375rem; }
  .news-section__bottom-news {
    padding-bottom: 2.5625rem; }
  .news-section__bottom-news-column .list-item:last-child {
    border-bottom: 0; }
  .news-section__popular .list-item {
    border-bottom: 0; }
  .news-section--related {
    padding-bottom: 3.75rem;
    padding-top: 4.875rem; }

.load-more-posts {
  height: 25px;
  text-align: center;
  -webkit-transition: height 250ms, opacity 250ms, visibility 250ms;
  transition: height 250ms, opacity 250ms, visibility 250ms; }
  .load-more-posts__button {
    color: #738684;
    cursor: default;
    display: inline-block;
    font-size: 1rem;
    letter-spacing: .01875em;
    line-height: 1.5rem;
    opacity: 0;
    text-decoration: none;
    -webkit-transition: opacity 150ms, visbility 150ms;
    transition: opacity 150ms, visbility 150ms;
    visibility: hidden; }
    .load-more-posts__button:before {
      -webkit-animation-duration: 1000ms;
              animation-duration: 1000ms;
      -webkit-animation-iteration-count: infinite;
              animation-iteration-count: infinite;
      -webkit-animation-name: loading-roate;
              animation-name: loading-roate;
      -webkit-animation-play-state: paused;
              animation-play-state: paused;
      -webkit-animation-timing-function: linear;
              animation-timing-function: linear;
      content: '';
      margin-right: .6875rem;
      -webkit-transform-origin: 48% 42%;
          -ms-transform-origin: 48% 42%;
              transform-origin: 48% 42%;
      vertical-align: middle;
      width: 1.3125em;
      height: 1.375em;
      background-position: -0.3125em -16.3125em; }
      .lt-ie9 .load-more-posts__button:before {
        width: 20px;
        height: 21px;
        background-position: -5 -261px; }
    .load-more-posts__button--loading {
      opacity: 1;
      visibility: visible; }
      .load-more-posts__button--loading:hover {
        color: #738684; }
      .load-more-posts__button--loading:before {
        -webkit-animation-play-state: running;
                animation-play-state: running; }
  .load-more-posts--hidden {
    height: 0;
    opacity: 0;
    visibility: hidden; }

@-webkit-keyframes loading-roate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes loading-roate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@media screen and (max-width: 78.25rem) {
  .search-bar__form {
    margin-left: -2.3125rem; }
  .blog-gray-box--popular {
    margin-left: -2.25rem;
    margin-right: -2.25rem;
    padding: 1.5rem 2.25rem 1.1875rem; } }

@media screen and (max-width: 72.5rem) and (min-width: 60rem) {
  .search-bar__search-field {
    min-width: 18rem; }
  .search-bar__category {
    margin-left: 1.5rem; } }

@media screen and (max-width: 64rem) {
  .blog-top__featured {
    padding-top: 0; } }

@media screen and (max-width: 59.9375rem) {
  .search-bar__search-field {
    min-width: 15rem; }
  .news-section__events-column {
    margin-top: 3rem; } }

@media screen and (max-width: 59.9375rem) and (min-width: 48rem) {
  .search-bar__categories {
    font-size: 1rem;
    margin-top: 1.375rem; }
  .search-bar__category {
    margin-left: .875rem; } }

@media screen and (max-width: 47.9375rem) {
  .blog-top {
    padding-bottom: 0;
    padding-top: 2.25rem; }
    .blog-top__row > .columns {
      float: none; }
      .blog-top__row > .columns:last-child {
        float: none; }
    .blog-top__featured {
      margin-bottom: 2.25rem;
      text-align: center; }
    .blog-top__featured-title {
      margin: 0 0 1.5rem; }
    .blog-top__featured-category {
      margin-bottom: 1.25rem; }
    .blog-top__featured-excerpt {
      font-size: .875rem;
      line-height: 1.5rem;
      margin: 0 0 1rem; }
    .blog-top__editors {
      background: #fff;
      margin: 0 -1rem;
      padding: 1.75rem 1rem 2.25rem;
      width: auto; }
    .blog-top__editors-title {
      color: #072e43;
      font-size: .75rem;
      padding: 0 0 .375rem; }
    .blog-top__editors-articles .list-item__row .columns {
      width: 100%; }
      .blog-top__editors-articles .list-item__row .columns:first-child {
        display: none; }
    .blog-top__editors-articles .list-item__title-link {
      color: #072e43; }
    .blog-top__editors-articles .list-item__content > p {
      color: #072e43; }
    .blog-top__editors-articles .list-item__read-more {
      display: none; }
    .blog-top__editors-articles .list-item__title-date {
      display: none; }
  .search-bar {
    border: 0; }
    .search-bar__form {
      float: none;
      margin-left: -1rem;
      margin-right: -1rem;
      width: calc(100% + 2rem); }
    .search-bar__search-field {
      border-left: 0;
      border-radius: 0;
      border-right: 0;
      margin: 0;
      padding-left: 1rem;
      width: 100%; }
    .search-bar__categories-scroller {
      float: none;
      margin-left: -1rem;
      margin-right: -1rem;
      overflow-x: scroll;
      overflow-y: hidden;
      padding: 0 1rem;
      width: calc(100% + 2rem); }
    .search-bar__categories {
      float: none;
      overflow: hidden;
      padding-bottom: .5rem;
      width: 100%; }
  .news-section {
    padding-bottom: 3rem;
    padding-top: 2.25rem; }
    .news-section__events .list-item__row .columns:first-child {
      width: 29.16%; }
    .news-section__events .list-item__row .columns:last-child {
      margin-left: 4.18%;
      width: 66.66%; }
  .blog-section-top__title {
    font-size: .875rem;
    line-height: 1.5rem; }
  .blog-section-top__link {
    line-height: 1.5rem; }
  .blog-gray-box--popular {
    margin-left: -1rem;
    margin-right: -1rem;
    padding: 2rem 1rem; } }

@media screen and (max-width: 26.1875rem) {
  .news-section__popular .list-item {
    padding: .75rem 0; }
    .news-section__popular .list-item .columns:first-child {
      display: none; }
    .news-section__popular .list-item__read-more {
      display: none; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.category-top {
  overflow: hidden;
  padding-bottom: 3.75rem;
  padding-top: 4.5625rem;
  position: relative; }
  .category-top--search {
    padding-bottom: 2.5625rem; }
  .category-top__svg {
    position: absolute;
    right: 0;
    top: -7.75rem; }
  .category-top__top {
    color: #072e43;
    position: relative; }
    .category-top__top p {
      font-family: "Rubik", sans-serif;
      margin: 1.0625rem 0 0; }
      .category-top__top p.search {
        font-family: 'futura-pt', sans-serif; }
  .category-top__title {
    color: #072e43;
    margin: 0; }
  .category-top__small-column {
    margin-bottom: 1.5rem; }
    .category-top__small-column .list-item {
      margin-bottom: 0; }
    .category-top__small-column:last-of-type {
      margin-bottom: 0; }
  .category-top__editors-pick {
    position: relative; }

.category-item__image-link {
  border: solid 3px #fff;
  -webkit-box-shadow: 0 0.125rem 0.9375rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.125rem 0.9375rem 0 rgba(0, 0, 0, 0.15);
  display: block;
  overflow: hidden;
  position: relative; }
  .category-item__image-link img {
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    display: block;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    -webkit-transition: -webkit-transform 150ms ease-in;
    transition: -webkit-transform 150ms ease-in;
    transition: transform 150ms ease-in;
    transition: transform 150ms ease-in, -webkit-transform 150ms ease-in;
    width: 100%; }

.category-item__image-date {
  background: #fff;
  border-radius: .375rem;
  -webkit-box-shadow: 0 0.125rem 0.625rem 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.125rem 0.625rem 0 rgba(0, 0, 0, 0.25);
  display: block;
  height: 2.25rem;
  left: 1.25rem;
  overflow: hidden;
  position: absolute;
  top: 1.25rem;
  width: 2.25rem; }

.category-item__image-date-month {
  background: #072e43;
  color: #fff;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-size: .5rem;
  font-weight: bold;
  height: .75rem;
  line-height: .75rem;
  text-align: center;
  text-transform: uppercase; }

.category-item__image-date-day {
  color: #f03e39;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-size: 1rem;
  font-weight: bold;
  height: 1.5rem;
  letter-spacing: .01875em;
  line-height: 1.5rem;
  text-align: center;
  text-transform: uppercase; }

.category-item__title {
  margin: .8125rem 0; }

.category-item__title-link {
  color: #072e43;
  text-decoration: none; }
  .category-item__title-link:hover {
    color: #008283; }

.category-item__date {
  color: #738684;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .0125rem;
  line-height: 1.5rem;
  margin-left: 1rem; }

.category-item__excerpt {
  color: #072e43;
  font-family: "Rubik", sans-serif;
  margin: 1.1875rem 0 0; }

.category-item:hover .category-item__image-link img {
  -webkit-transform: scale(1.05);
      -ms-transform: scale(1.05);
          transform: scale(1.05);
  -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.news-section__event-filters-all {
  display: inline-block;
  font-weight: 700;
  letter-spacing: .0625rem;
  line-height: 1.3125rem;
  padding: .5rem .625rem;
  text-decoration: none;
  text-transform: uppercase; }

.news-section__accordion {
  background: none;
  margin: 0;
  padding: 0;
  width: 100%; }

.news-section__accordion-title {
  background: #fff;
  border: 0;
  border-top: 1px solid #072e43;
  display: block;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .0625rem;
  line-height: 1.3125rem;
  padding: 0;
  position: relative;
  text-decoration: none;
  text-transform: uppercase; }
  .news-section__accordion-title .year {
    display: block;
    padding: .5rem .625rem;
    position: relative;
    width: 100%;
    z-index: 1; }
  .news-section__accordion-title .arrow {
    display: block;
    font: normal normal normal 1rem FontAwesome;
    height: 100%;
    line-height: 2.3125rem;
    margin: 0;
    position: absolute;
    right: 0;
    text-align: center;
    top: 0;
    -webkit-transition: background 250ms linear;
    transition: background 250ms linear;
    vertical-align: middle;
    width: 2.3125rem;
    z-index: 2; }
    .news-section__accordion-title .arrow:before {
      content: '\f107'; }
    .news-section__accordion-title .arrow:hover {
      background: #f0f5f9; }
  .news-section__accordion-title:before {
    display: none; }
  .news-section__accordion-title:hover {
    background: #fff;
    color: #072e43; }
  .news-section__accordion-title:focus {
    background: #fff; }
  .news-section__accordion-title.current-year {
    color: #072e43; }

.news-section__accordion-content {
  background: #f0f5f9;
  border: 0;
  padding: 0; }

.news-section__accordion-months {
  list-style: none;
  padding: 0; }

.news-section__accordion-month {
  border-bottom: 1px solid #fff; }
  .news-section__accordion-month:last-child {
    border-bottom: 0; }

.news-section__accordion-month-link {
  display: block;
  font-size: .875rem;
  letter-spacing: .01875rem;
  line-height: 1.125rem;
  padding: .4375rem .625rem .625rem;
  text-decoration: none; }
  .news-section__accordion-month-link.current {
    color: #072e43; }

.news-section__accordion-item:last-child > .accordion-title {
  border-bottom: 1px solid #072e43; }

.news-section__accordion-item.is-active > .accordion-title {
  background: #fff; }
  .news-section__accordion-item.is-active > .accordion-title .arrow {
    background: #f0f5f9; }
    .news-section__accordion-item.is-active > .accordion-title .arrow:before {
      content: '\f106'; }

.news-section__accordion-item.is-active:last-child > .accordion-title {
  border-bottom: 0; }

.news-section__accordion-item.is-active:last-child > .accordion-content {
  border-bottom: 1px solid #072e43; }

.blog-section-top__title--events:before {
  content: '';
  margin-right: .625rem;
  margin-top: -.125rem;
  vertical-align: middle;
  width: 1.3125em;
  height: 1.25em;
  background-position: -0.3125em -0.3125em; }
  .lt-ie9 .blog-section-top__title--events:before {
    width: 20px;
    height: 19px;
    background-position: -5 -5; }

@media screen and (max-width: 78.25rem) {
  .blog-gray-box--editors-pick {
    margin-left: -1.875rem;
    margin-right: -1.875rem;
    padding-left: 1.875rem;
    padding-right: 1.875rem; } }

@media screen and (max-width: 64rem) {
  .category-item__title {
    font-size: 1rem;
    line-height: 1.5rem;
    margin-top: 0; }
  .category-item__excerpt {
    font-size: .875rem;
    line-height: 1.5rem; } }

@media screen and (max-width: 59.9375rem) {
  .category-item {
    margin-bottom: 2rem; } }

@media screen and (max-width: 47.9375rem) {
  .category-top {
    padding-bottom: 1.875rem;
    padding-top: 2.375rem; }
    .category-top__top {
      text-align: center; }
      .category-top__top p {
        font-size: .875rem;
        line-height: 1.5rem; }
    .category-top__small-column .list-item__row .columns:first-child {
      width: 29.16%; }
    .category-top__small-column .list-item__row .columns:last-child {
      margin-left: 4.18%;
      width: 66.66%; }
    .category-top__editors-pick {
      margin-bottom: -1.875rem; }
  .blog-gray-box--editors-pick {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
  .news-section__events-filters {
    display: none; } }

@media screen and (max-width: 26.1875rem) {
  .category-item .columns:first-child {
    margin-bottom: .375rem; }
  .category-item__title {
    margin-bottom: .375rem; }
  .category-item__excerpt {
    font-size: .75rem;
    line-height: 1.125rem;
    margin-top: .75rem; }
  .category-top__small-column {
    margin-bottom: 2.625rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.post-top {
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover;
  position: relative; }
  .post-top--has-video {
    overflow: hidden; }
  .post-top__video-btn {
    left: 0;
    margin: 0 auto;
    position: absolute;
    right: 0;
    top: 8rem;
    -webkit-transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    transition: transform 550ms ease-out, opacity 550ms, visibility 550ms;
    transition: transform 550ms ease-out, opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out; }
    .post-top__video-btn.showing-video {
      opacity: 0;
      -webkit-transform: translateY(6.875rem);
          -ms-transform: translateY(6.875rem);
              transform: translateY(6.875rem);
      visibility: hidden; }
  .post-top__overlay {
    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(17, 90, 121, 0.25)), to(#072e43));
    background-image: -webkit-linear-gradient(top, rgba(17, 90, 121, 0.25), #072e43);
    background-image: linear-gradient(to bottom, rgba(17, 90, 121, 0.25), #072e43);
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .post-top__video-wrapper {
    background: #000;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    transition: transform 550ms ease-out, opacity 550ms, visibility 550ms;
    transition: transform 550ms ease-out, opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    visibility: hidden;
    width: 100%;
    z-index: 3; }
    .post-top__video-wrapper p {
      height: 100%;
      margin: 0; }
    .post-top__video-wrapper iframe {
      display: block;
      height: 100%;
      margin: 0 auto;
      width: calc(100% - 10rem); }
    .post-top__video-wrapper.showing-video {
      opacity: 1;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      visibility: visible; }
  .post-top__video-close {
    cursor: pointer;
    display: block;
    height: 2rem;
    opacity: .7;
    outline: none;
    position: absolute;
    right: .75rem;
    top: .75rem;
    -webkit-transition: opacity 200ms;
    transition: opacity 200ms;
    width: 2rem; }
    .post-top__video-close:before, .post-top__video-close:after {
      background: #fff;
      bottom: 0;
      content: '';
      display: block;
      height: 100%;
      left: 0;
      margin: auto;
      position: absolute;
      right: 0;
      top: 0;
      -webkit-transform-origin: 50% 50%;
          -ms-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      width: 1px; }
    .post-top__video-close:before {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .post-top__video-close:after {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .post-top__video-close:hover {
      opacity: 1; }
  .post-top__content {
    padding-bottom: 10rem;
    padding-top: 20rem;
    position: relative;
    -webkit-transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
    transition: transform 550ms ease-out, opacity 550ms, visibility 550ms;
    transition: transform 550ms ease-out, opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out; }
    .post-top__content--event {
      padding-bottom: 21.75rem;
      padding-top: 17rem; }
    .post-top__content--press-release {
      padding-bottom: 8rem;
      padding-top: 8.625rem; }
    .post-top__content--report {
      padding-bottom: 8.125rem;
      padding-top: 8.75rem; }
    .post-top__content--about {
      padding-bottom: 0;
      padding-top: 0; }
    .post-top__content.showing-video {
      opacity: 0;
      -webkit-transform: translateY(6.875rem);
          -ms-transform: translateY(6.875rem);
              transform: translateY(6.875rem);
      visibility: hidden; }
  .post-top__content-top {
    margin-bottom: 1.625rem; }
    .post-top__content-top--event {
      margin-bottom: 0; }
  .post-top__category {
    color: #fff;
    display: inline-block;
    font-weight: 600;
    letter-spacing: .01875em;
    margin-bottom: .375rem; }
    .post-top__category--event {
      margin-bottom: 0; }
  .post-top__category-label {
    display: block;
    float: left;
    margin-right: 1.875rem;
    margin-top: .75rem; }
  .post-top__title {
    color: #fff;
    margin: 0; }
    .post-top__title--event {
      margin: -.3125rem 0 0; }
  .post-top__title-wrapper {
    float: left; }
    @media print, screen and (min-width: 26.25em) {
      .post-top__title-wrapper {
        width: calc(100% - 280px); } }
  .post-top__event-date {
    background: #fff;
    border-radius: .375rem;
    -webkit-box-shadow: 0 0.125rem 0.625rem 0 rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.125rem 0.625rem 0 rgba(0, 0, 0, 0.25);
    display: block;
    float: left;
    height: 4.625rem;
    margin-right: 1.1875rem;
    overflow: hidden;
    width: 5.0625rem; }
  .post-top__event-date-month {
    background: #072e43;
    color: #fff;
    display: block;
    font-family: "futura-pt", sans-serif;
    font-size: 1rem;
    font-weight: bold;
    height: 1.625rem;
    line-height: 1.625rem;
    text-align: center;
    text-transform: uppercase; }
  .post-top__event-date-day {
    color: #f03e39;
    display: block;
    font-family: "futura-pt", sans-serif;
    font-size: 2rem;
    font-weight: bold;
    height: 3rem;
    letter-spacing: .01875em;
    line-height: 3rem;
    text-align: center;
    text-transform: uppercase; }
  .post-top__author {
    float: left;
    margin-right: 1.875rem; }
  .post-top__author-image {
    border: solid 1px #979797;
    border-radius: 50%;
    display: inline-block;
    height: 3rem;
    width: 3rem; }
  .post-top__author-name {
    color: #fff;
    display: inline-block;
    font-weight: 600;
    letter-spacing: .01875em;
    line-height: 3rem;
    margin-left: .625rem; }
  .post-top__date {
    color: #fff;
    display: block;
    float: left;
    letter-spacing: .01875em;
    line-height: 3rem; }
  .post-top__share-buttons {
    direction: ltr;
    float: right;
    padding-top: .375rem; }
    .post-top__share-buttons--event {
      padding-top: 1.6875rem; }
  .post-top__share-button {
    border: 1px solid;
    border-radius: 50%;
    color: #fff;
    display: inline-block;
    height: 2.25rem;
    margin-left: 1.25rem;
    text-align: center;
    -webkit-transition: color 200ms, border-color 200ms, background 200ms;
    transition: color 200ms, border-color 200ms, background 200ms;
    width: 2.25rem; }
    .post-top__share-button:hover {
      background: #fff;
      border-color: #fff;
      color: #072e43; }
  .post-top__share-icon, .post-top__share-icon.fa {
    font-size: 1.25rem;
    line-height: 2.125rem; }

.post-content-section {
  margin-top: -6.875rem;
  position: relative;
  -webkit-transition: margin-top 550ms ease-out;
  transition: margin-top 550ms ease-out;
  z-index: 2; }
  .post-content-section--event {
    margin-top: -18.75rem; }
  .post-content-section--wide {
    background: #fff;
    margin: -5.25rem auto 0;
    max-width: 80.625rem;
    width: 100%; }
  .post-content-section.showing-video {
    margin-top: 0; }

.post-content {
  background: #fff;
  color: #072e43;
  padding: 2rem 6.25rem 3.375rem;
  position: relative; }
  .post-content p,
  .post-content ul,
  .post-content ol {
    font-family: "Rubik", sans-serif;
    font-size: 1.25rem;
    letter-spacing: .015em;
    line-height: 1.8em; }
    .post-content p a,
    .post-content ul a,
    .post-content ol a {
      font-weight: 600; }
  .post-content p {
    margin: 0 0 1.8em; }
    .post-content p:first-child {
      font-family: 'futura-pt', sans-serif;
      font-size: 1.875rem;
      letter-spacing: .01em;
      line-height: 1.2em;
      margin: 0 0 2.4375rem; }
      .post-content p:first-child + p {
        border-top: 1px solid #ddd; }
  .post-content a + em {
    display: inline-block; }
  .post-content ul {
    background-color: rgba(108, 160, 201, 0.1);
    margin: 0 -6.25rem 2.875rem;
    padding: 3rem 6.25rem 3rem 7.5rem; }
    .post-content ul li {
      margin: 0 0 1.5rem;
      padding-left: .5rem; }
  .post-content *::-moz-selection {
    background-color: #008283;
    color: #fff; }
  .post-content *::selection {
    background-color: #008283;
    color: #fff; }
  .post-content__registration-box {
    border-bottom: 1px solid #d8d8d8;
    border-top: 1px solid #d8d8d8;
    padding: 1.0625rem 0 1.1875rem; }
  .post-content__registration-info {
    display: inline-block;
    line-height: 2.9375rem;
    margin: 0 1.5rem 0  0;
    vertical-align: top; }
  .post-content--event {
    margin-right: -.625rem;
    padding-bottom: 4.4375rem;
    padding-right: .625rem; }
    .post-content--event p:first-child {
      margin-bottom: 2.5rem; }
      .post-content--event p:first-child + p {
        padding-top: 2.1875rem; }
    .post-content--event p.registration-info {
      line-height: 2.9375rem;
      margin: 0 1.5rem 0 0; }
    .post-content--event ul {
      margin: 0 2.25rem 2.875rem -3.6875rem;
      padding: 3rem 2.25rem 3rem 4.9375rem; }
  .post-content--wide {
    padding-left: 0;
    padding-right: 0; }
  .post-content--press-release {
    padding-bottom: 2rem; }
    .post-content--press-release p:first-child {
      margin-bottom: 2.5rem; }
      .post-content--press-release p:first-child + p {
        padding-top: 1.5rem; }
    .post-content--press-release ul {
      margin: 0 -3.75rem 2.875rem;
      padding: 3rem 3.75rem; }
  .post-content--white-lists ul {
    background-color: transparent;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding: 0 0 0 1.5rem; }

.blockquote {
  background-color: rgba(108, 160, 201, 0.1);
  color: #072e43;
  font-family: "Rubik", sans-serif;
  font-size: 1.5rem;
  font-style: italic;
  line-height: 1.5em;
  margin: 0 -3.75rem 1.8125rem;
  padding: 7.1825rem 3.75rem 4.25rem;
  position: relative;
  text-align: center; }
  .blockquote:before {
    bottom: 0;
    color: #b4b63c;
    content: '„';
    display: block;
    font-family: 'Arial', sans-serif;
    font-size: 6rem;
    font-weight: bold;
    height: 2.25rem;
    left: 0;
    margin: 0 auto;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 5rem;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg);
    -webkit-transform-origin: 50% 50%;
        -ms-transform-origin: 50% 50%;
            transform-origin: 50% 50%;
    width: 2.4375rem; }
  .blockquote__footer {
    font-style: normal;
    margin-top: 2.625rem; }
  .blockquote__author {
    display: block;
    font-family: 'futura-pt', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .01875rem;
    line-height: 1.5em; }
  .blockquote__position {
    color: #738684;
    display: block;
    font-size: .75rem;
    font-weight: 400;
    line-height: 1.5em;
    margin: .375rem 0 0; }
  .blockquote__inner {
    margin: 0 auto;
    max-width: 38rem; }

.post-sidebar-column {
  text-align: center; }
  .post-sidebar-column__button-wrapper {
    border-bottom: 1px solid #072e43;
    display: none;
    padding-bottom: 1.25rem;
    padding-top: 1.25rem; }
  .post-sidebar-column__button span.hide-more {
    display: none; }
  .post-sidebar-column__button.active span.show-more {
    display: none; }
  .post-sidebar-column__button.active span.hide-more {
    display: inline; }

.post-sidebar {
  background: #fff;
  margin-left: -.625rem;
  padding: 2rem 2.5rem 0 .625rem;
  text-align: left; }
  .post-sidebar--press-release {
    padding-right: 0; }
  .post-sidebar__event-details {
    border-bottom: 1px solid #ddd;
    margin-bottom: 1.3125rem;
    padding-bottom: 1.75rem; }
  .post-sidebar__event-date {
    color: #072e43;
    font-weight: 600;
    margin: 0 0 .75rem; }
  .post-sidebar__event-place {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.5rem; }
    .post-sidebar__event-place span {
      color: #008283;
      font-weight: 600; }
  .post-sidebar__event-time {
    color: #072e43;
    font-weight: 600;
    margin: 0; }
    .post-sidebar__event-time span {
      display: inline-block;
      font-weight: 400;
      margin-right: .5rem;
      min-width: 2.5rem; }
  .post-sidebar__registration {
    margin: 0 0 2.75rem; }
  .post-sidebar__registration-text {
    color: #072e43;
    margin: 0 0 1rem; }
  .post-sidebar__related-report-wrapper {
    margin: 0 0 2.6875rem; }
  .post-sidebar__related-report-top-title-press-release:before {
    content: '';
    margin-right: .5625rem;
    margin-top: -.125rem;
    vertical-align: middle;
    width: 0.8125em;
    height: 1em;
    background-position: -0.3125em -46.0625em; }
    .lt-ie9 .post-sidebar__related-report-top-title-press-release:before {
      width: 12px;
      height: 15px;
      background-position: -5 -737px; }
  .post-sidebar__media-resources {
    background-color: rgba(179, 182, 61, 0.1);
    color: #072e43;
    margin-left: -1.25rem;
    padding: 1.25rem 1.25rem 2.625rem; }
  .post-sidebar__media-resources-desc {
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.875rem; }
  .post-sidebar__media-resources-subtitle {
    border-bottom: 1px solid #b4b63c;
    font-size: .75rem;
    font-weight: 400;
    margin: 0 0 .75rem;
    padding: 0 0 .375rem;
    text-transform: uppercase; }
  .post-sidebar__media-resources-inner {
    padding-right: 1.25rem; }
  .post-sidebar__key-quote-wrapper {
    margin: 0 0 2.875rem; }
    .post-sidebar__key-quote-wrapper:last-child {
      margin: 0; }
  .post-sidebar__key-quote {
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    letter-spacing: .0125rem;
    line-height: 1.5em;
    margin: 0 0 1.1875rem; }

.related-report__image-link {
  display: block;
  margin: 0 0 1.1875rem;
  overflow: hidden; }
  .related-report__image-link img {
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    display: block;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    -webkit-transition: -webkit-transform 150ms ease-in;
    transition: -webkit-transform 150ms ease-in;
    transition: transform 150ms ease-in;
    transition: transform 150ms ease-in, -webkit-transform 150ms ease-in; }

.related-report__title {
  margin-bottom: .25rem; }

.related-report__title-link {
  text-decoration: none; }

.related-report__excerpt {
  color: #072e43;
  font-family: "Rubik", sans-serif;
  font-size: .75rem;
  line-height: 1.5em;
  margin: 0; }

.related-report:hover .related-report__image-link img {
  -webkit-transform: scale(1.05);
      -ms-transform: scale(1.05);
          transform: scale(1.05);
  -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.speaker-section {
  background-image: url("../img/speaker-bg.jpg");
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover;
  color: #fff;
  padding-bottom: 7.875rem;
  padding-top: 6.375rem;
  position: relative; }
  .speaker-section__overlay {
    background-color: rgba(0, 130, 131, 0.5);
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .speaker-section__row {
    position: relative; }
  .speaker-section__title {
    margin: 0 0 1.375rem; }
  .speaker-section__widget p {
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.5rem; }

.sharelines-section {
  background: #fff;
  color: #072e43;
  padding-bottom: 4.875rem;
  padding-top: 4.25rem; }
  .sharelines-section__shareline {
    padding: 1.125rem 0; }
  .sharelines-section__shareline-content {
    font-family: "Rubik", sans-serif;
    margin: 0; }
  .sharelines-section__button {
    border: solid 1px #979797;
    border-radius: 50%;
    display: inline-block;
    font-size: 1.25rem;
    height: 2.25rem;
    margin-right: 1.25rem;
    text-align: center;
    -webkit-transition: color 200ms, border-color 200ms, background-color 200ms;
    transition: color 200ms, border-color 200ms, background-color 200ms;
    width: 2.25rem; }
    .sharelines-section__button:last-child {
      margin-right: 0; }
    .sharelines-section__button:hover {
      color: #fff; }
      .sharelines-section__button:hover.facebook-color {
        background-color: #3b5998;
        border-color: #3b5998; }
      .sharelines-section__button:hover.twitter-color {
        background-color: #55acee;
        border-color: #55acee; }
      .sharelines-section__button:hover.linkedin-color {
        background-color: #007bb5;
        border-color: #007bb5; }
  .sharelines-section__icon {
    line-height: 2.125rem; }

.author-section {
  background-color: rgba(108, 160, 201, 0.1);
  color: #072e43;
  padding-bottom: 5.625rem;
  padding-top: 4.25rem; }
  .author-section__top {
    margin-bottom: 1.5rem; }
  .author-section__photo {
    border: solid 1px #ddd;
    border-radius: 50%;
    float: left;
    height: 7.5rem;
    width: 7.5rem; }
    .author-section__photo--company {
      border: 0;
      border-radius: 0;
      height: auto;
      width: 6.4375rem; }
  .author-section__content-column {
    float: left;
    padding-left: 1.9375rem;
    width: calc(100% - 7.5rem); }
    .author-section__content-column--full {
      padding-left: 0;
      width: 100%; }
    .author-section__content-column--company {
      padding-left: 3rem;
      width: calc(100% - 6.4375rem); }
  .author-section__content-column-top {
    padding: .5rem 0 1rem; }
  .author-section__name {
    display: inline-block;
    margin: 0; }
  .author-section__position {
    display: inline-block;
    font-size: 1rem;
    letter-spacing: .01875rem;
    line-height: 1.5rem;
    margin-left: 1.25rem;
    vertical-align: bottom; }
  .author-section p {
    font-family: "Rubik", sans-serif;
    margin: 0; }

.share-tooltip {
  background: #fff;
  border-radius: 1.5625rem;
  -webkit-box-shadow: 0 0.3125rem 0.9375rem 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.3125rem 0.9375rem 0 rgba(0, 0, 0, 0.25);
  direction: ltr;
  opacity: 0;
  padding: 1rem 1.25rem;
  position: absolute;
  -webkit-transition: opacity 150ms, visibility 150ms;
  transition: opacity 150ms, visibility 150ms;
  visibility: hidden;
  z-index: 10; }
  .share-tooltip:after {
    border-color: #fff transparent transparent;
    border-style: solid;
    border-width: 8px 10px 0;
    bottom: -8px;
    content: '';
    display: block;
    height: 0;
    left: 0;
    margin: 0 auto;
    position: absolute;
    right: 0;
    width: 0; }
  .share-tooltip__button {
    display: inline-block;
    font-size: 1.125rem;
    line-height: 1em;
    margin-right: 1.25rem; }
    .share-tooltip__button:last-child {
      margin-right: 0; }
  .share-tooltip--visible {
    opacity: 1;
    visibility: visible; }

@media screen and (max-width: 83.25rem) {
  .blockquote {
    margin-left: 0;
    padding-left: 2.125rem; } }

@media screen and (max-width: 75rem) {
  .post-content--next-to-sidebar {
    padding-left: 2.25rem;
    padding-right: 0; }
  .post-content--no-sidebar {
    padding-right: 2.25rem; }
  .post-sidebar .button--big {
    padding-left: 1rem;
    padding-right: 1rem; } }

@media screen and (max-width: 64rem) {
  .post-content {
    padding-left: 6.875rem;
    padding-right: 6.875rem; }
    .post-content--next-to-sidebar {
      padding-left: 2.25rem;
      padding-right: 0; }
    .post-content--no-sidebar {
      padding-right: 2.25rem; }
    .post-content--event {
      margin-right: 0;
      padding-left: 11%;
      padding-right: 11%; }
      .post-content--event ul {
        margin-right: -1.75rem; }
  .post-sidebar-column--event {
    z-index: 2; }
    .post-sidebar-column--event .post-sidebar {
      margin-left: -2.625rem; } }

@media screen and (max-width: 59.9375rem) {
  .post-top__content--event {
    padding-bottom: 6rem;
    padding-top: 14rem; }
  .post-content-section--event {
    margin-top: 0;
    padding-left: 0;
    padding-right: 0; }
  .post-content {
    padding-left: 2.25rem;
    padding-right: 2.25rem; }
    .post-content ul {
      margin-left: -2.875rem;
      margin-right: -2.875rem;
      padding-left: 3.875rem;
      padding-right: 2.875rem; }
    .post-content--event {
      margin-right: 0; }
      .post-content--event ul {
        margin-left: -2.875rem;
        margin-right: -2.875rem;
        padding-left: 3.875rem;
        padding-right: 2.875rem; }
    .post-content--white-lists ul {
      margin-left: 0;
      margin-right: 0;
      margin-top: 0;
      padding: 0 0 0 1.5rem; }
  .post-sidebar-column {
    padding-left: 2.875rem;
    padding-right: 2.875rem; }
    .post-sidebar-column__button-wrapper {
      display: block; }
    .post-sidebar-column--event .post-sidebar {
      margin-left: 0; }
  .post-sidebar {
    display: none;
    margin-left: 0;
    padding: 2rem 0 0; }
    .post-sidebar__media-resources {
      margin-left: -2.875rem;
      margin-right: -2.875rem;
      padding-left: 2.875rem;
      padding-right: 2.875rem; }
  .blockquote {
    margin-left: -2.875rem;
    margin-right: -2.875rem;
    padding-left: 2.875rem;
    padding-right: 2.875rem; }
  .related-report {
    overflow: hidden; }
    .related-report__image-link {
      float: left;
      width: calc(50% - 10px); }
    .related-report__content-wrapper {
      float: right;
      width: calc(50% - 10px); } }

@media screen and (max-width: 47.9375rem) {
  .post-top__content {
    padding-bottom: 2.5rem;
    padding-top: 8rem; }
  .post-top__video-btn {
    top: 2rem; }
  .post-content-section {
    margin-top: 0; }
  .post-content {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 1.5rem; }
    .post-content ul {
      margin-left: -1.3125rem;
      margin-right: -1.3125rem;
      padding-left: 2.3125rem;
      padding-right: 1.3125rem;
      padding-top: 2.625rem; }
    .post-content p:first-child {
      font-size: 1.5rem;
      line-height: 1.5em;
      margin: 0 0 1.375rem; }
      .post-content p:first-child + p {
        padding-top: 3rem; }
    .post-content--white-lists ul {
      margin-left: 0;
      margin-right: 0;
      margin-top: 0;
      padding: 0 0 0 1.5rem; }
  .newsletter-section {
    padding-bottom: 3rem;
    padding-top: 2.5rem; }
  .sharelines-section {
    padding-bottom: 3.5rem;
    padding-top: 3rem; }
  .author-section {
    padding-bottom: 3rem;
    padding-top: 2rem; }
  .post-sidebar-column {
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; }
  .post-sidebar__media-resources {
    margin-left: -1.31255rem;
    margin-right: -1.3125rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; }
  .blockquote {
    font-size: 1.25rem;
    line-height: 2.25rem;
    margin-left: -1.31255rem;
    margin-right: -1.3125rem;
    padding-bottom: 3.25rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; } }

@media screen and (max-width: 26.1875rem) {
  .post-top__video-wrapper iframe {
    height: calc(100% - 6rem);
    margin: 3rem 0 0;
    width: 100%; }
  .post-top__video-close {
    z-index: 10; }
  .post-top__content-top {
    text-align: center; }
  .post-top__author {
    margin-right: 0; }
  .post-top__date {
    float: right; }
    .post-top__date--center {
      text-align: center;
      width: 100%; }
  .post-top__share-buttons {
    margin-top: 2rem;
    padding-top: 0;
    text-align: center;
    width: 100%; }
  .post-top__share-button:first-child {
    margin-left: 0; }
  .post-top__event-date {
    float: none;
    margin: 0 auto 2rem; }
  .post-top__title-wrapper {
    float: none; }
  .post-content ul {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 2rem;
    padding-right: 1rem; }
  .post-content__registration-box {
    text-align: center; }
    .post-content__registration-box p {
      display: block; }
  .newsletter-section {
    text-align: center; }
    .newsletter-section .newsletter-section-widget:first-of-type {
      margin-bottom: 2.125rem; }
    .newsletter-section .newsletter-section-widget .footer-newsletter-section__button {
      width: 100%; }
  .sharelines-section .blog-section-top__title,
  .author-section .blog-section-top__title {
    font-size: 1rem;
    text-align: center;
    width: 100%; }
  .sharelines-section {
    padding-bottom: 2.5rem; }
    .sharelines-section__shareline {
      padding: 2rem 0;
      text-align: center; }
      .sharelines-section__shareline .row .columns:first-child {
        margin-bottom: 1.125rem; }
  .author-section {
    text-align: center; }
    .author-section__photo {
      display: block;
      float: none;
      height: 3rem;
      margin: 0 auto;
      width: 3rem; }
      .author-section__photo--company {
        height: auto; }
    .author-section__content-column {
      padding: 0;
      width: 100%; }
    .author-section__content-column-top {
      margin: 0 0 1rem;
      padding: 0; }
    .author-section__name {
      display: block;
      font-size: 1.5rem;
      line-height: 1.875rem; }
    .author-section__position {
      display: block;
      font-size: .75rem;
      margin: 0; }
  .post-sidebar-column {
    padding-left: 1rem;
    padding-right: 1rem; }
  .post-sidebar__media-resources {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
  .blockquote {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
  .related-report__image-link {
    width: 100%; }
    .related-report__image-link img {
      width: 100%; }
  .related-report__content-wrapper {
    width: 100%; }
  .speaker-section {
    text-align: center; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.post-top__login-info {
  background: #008283;
  border: 3px solid #fff;
  -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.5);
          box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.5);
  color: #fff;
  margin-left: -1.25rem;
  padding: 1rem 1rem 1.625rem; }
  .post-top__login-info--logged-in {
    padding: 1rem; }
  .post-top__login-info--has-link {
    padding: 0; }

.post-top__login-info-block-link {
  color: #fff;
  cursor: pointer;
  display: block;
  padding: 1rem;
  text-decoration: none;
  -webkit-transition: color 200ms, background 200ms;
  transition: color 200ms, background 200ms; }
  .post-top__login-info-block-link:hover {
    background: #072e43;
    color: #fff; }

.post-top__login-info-title {
  display: block;
  line-height: 1.4375rem;
  margin: 0 0 .75rem; }
  .post-top__login-info-title:before {
    content: '';
    margin-right: .5625rem;
    vertical-align: top;
    width: 1.5625em;
    height: 1.4375em;
    background-position: -0.3125em -13.25em; }
    .lt-ie9 .post-top__login-info-title:before {
      width: 24px;
      height: 22px;
      background-position: -5 -212px; }
  .post-top__login-info-title--logged-in {
    margin: 0; }

.post-top__login-info-desc {
  font-family: "Rubik", sans-serif;
  margin: 0; }

.post-top__login-info-link {
  color: #fff;
  font-weight: 600; }

.post-content--report ul {
  margin: 0 -3.5rem 2.875rem;
  padding: 3rem 3.5rem; }

.post-sidebar--report {
  background: #f7f7eb;
  margin: -4.5625rem 0 0 -1.25rem;
  padding: 1.25rem 1.25rem 2.625rem; }

.sidebar-resource {
  margin-bottom: 3em; }
  .sidebar-resource__type {
    margin-bottom: 1.5rem; }
  .sidebar-resource__image-link {
    display: block;
    overflow: hidden; }
  .sidebar-resource__image {
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    display: block;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    -webkit-transition: -webkit-transform 150ms ease-in;
    transition: -webkit-transform 150ms ease-in;
    transition: transform 150ms ease-in;
    transition: transform 150ms ease-in, -webkit-transform 150ms ease-in; }
  .sidebar-resource__title {
    margin-bottom: .25rem; }
  .sidebar-resource__title-link {
    text-decoration: none; }
  .sidebar-resource__desc {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    margin: 0; }
  .sidebar-resource__button {
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    margin-top: 1.125rem;
    text-transform: uppercase; }
  .sidebar-resource:hover .sidebar-resource__image {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.key-findings {
  background-color: rgba(108, 160, 201, 0.1);
  margin: 0 -3.5rem;
  padding: 2.75rem 3.5rem 3rem; }
  .key-findings__top {
    margin-bottom: 2.5625rem; }
  .key-findings ul {
    background: none;
    margin: 0 0 3rem;
    padding: 0 0 0 1.125rem; }
  .key-findings .wp-caption {
    margin-left: 0;
    margin-right: 0; }

@media screen and (max-width: 80.625rem) {
  .key-findings {
    margin-left: -2rem;
    margin-right: -2rem;
    padding-left: 2rem;
    padding-right: 2rem; } }

@media screen and (max-width: 59.9375rem) {
  .post-top__login-info {
    margin-left: 0;
    margin-top: 1rem; }
  .key-findings {
    margin-left: -2.875rem;
    margin-right: -2.875rem;
    padding-left: 2.875rem;
    padding-right: 2.875rem; }
  .post-sidebar--report {
    margin-left: -2.875rem;
    margin-right: -2.875rem;
    margin-top: 0;
    padding-left: 2.875rem;
    padding-right: 2.875rem; } }

@media screen and (max-width: 47.9375rem) {
  .post-top__content--report {
    padding-top: 6rem; }
  .key-findings {
    margin-left: -1.3125rem;
    margin-right: -1.3125rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; }
  .post-sidebar--report {
    margin-left: -1.3125rem;
    margin-right: -1.3125rem;
    padding-left: 1.3125rem;
    padding-right: 1.3125rem; } }

@media screen and (max-width: 26.1875rem) {
  .key-findings {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
  .post-sidebar--report {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.news-section--reports {
  padding-top: 2.25rem; }

.news-section__top--reports {
  padding-bottom: 0; }

.news-section__top-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.news-section__report-column {
  margin-bottom: 3.75rem; }
  .news-section__report-column .report-tile {
    height: 100%; }

.search-bar__row--reports {
  background: #fff;
  position: relative;
  z-index: 3; }

.search-bar__company {
  background: #f0f5f9;
  border-left: 1px solid #ddd;
  float: right;
  height: 3.75rem;
  line-height: 1.5rem;
  margin-left: 1.8125rem;
  margin-right: -2.5rem;
  padding: 1.125rem 2.5rem 1.125rem 1.25rem; }

.search-bar__company-info {
  color: #072e43;
  display: inline-block;
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  vertical-align: middle; }

.search-bar__company-tooltip {
  margin-right: .75rem;
  outline: 0;
  vertical-align: top; }

.search-bar__company-login {
  display: inline-block;
  font-size: 1.25rem;
  line-height: 1.5rem;
  margin-left: .625rem;
  vertical-align: top; }

.search-bar__dropdown {
  background: #fff;
  -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.25);
  left: 0;
  opacity: 0;
  padding-bottom: 4rem;
  padding-top: 2rem;
  position: absolute;
  top: 3.8125rem;
  -webkit-transition: opacity 250ms, visibility 250ms;
  transition: opacity 250ms, visibility 250ms;
  visibility: hidden;
  width: 100%;
  z-index: 2; }
  .search-bar__dropdown.visible {
    opacity: 1;
    visibility: visible; }

.search-bar__dropdown-searches {
  max-width: 16.25rem; }

.search-bar__dropdown-searches-list {
  display: block;
  font-family: "Rubik", sans-serif;
  line-height: 1.5em;
  list-style: none;
  padding: 0; }

.search-bar__dropdown-searches-item {
  display: block;
  margin-bottom: 1.5rem; }
  .search-bar__dropdown-searches-item:last-child {
    margin-bottom: 0; }

.search-bar__dropdown-searches-link {
  text-decoration: none; }

.search-bar__dropdown-popular {
  max-width: 48.75rem; }
  .search-bar__dropdown-popular > .row.search-bar-dropdown-popular-row {
    margin-left: -.625rem;
    margin-right: -.625rem; }

.search-bar__dropdown-overlay {
  background-color: rgba(0, 0, 0, 0.25);
  height: 200vh;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 3.8125rem;
  -webkit-transition: opacity 250ms, visibility 250ms;
  transition: opacity 250ms, visibility 250ms;
  visibility: hidden;
  width: 100%;
  z-index: 1; }
  .search-bar__dropdown-overlay.visible {
    opacity: 1;
    visibility: visible; }

.search-bar--reports {
  position: relative;
  z-index: 2; }
  .search-bar--reports.sticky-navbar--sticky {
    position: fixed;
    z-index: 4; }

@media screen and (max-width: 47.9375rem) {
  .search-bar__dropdown {
    display: none; }
  .news-section__report-column {
    margin-bottom: 2rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.page-content-section {
  position: relative; }

.post-content--page {
  padding: 0 0 5.5rem; }
  .post-content--page p:first-child + p {
    padding-top: 2.25rem; }

.page-top {
  padding: 8.75rem 0 3.375rem; }
  .page-top__title {
    color: #072e43;
    margin: 0; }
  .page-top__parent-link {
    color: #072e43;
    font-weight: 600;
    margin: 0 0 .375rem; }
    .page-top__parent-link:hover {
      color: #008283; }

@media screen and (max-width: 47.9375rem) {
  .page-top {
    padding: 3.75rem 0 1.5rem;
    text-align: center; }
  .post-content--page {
    padding: 0 0 2rem; }
    .post-content--page p,
    .post-content--page ul {
      font-size: 1rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.contact-top {
  background: #072e43;
  height: 21rem;
  overflow: hidden;
  position: relative; }
  .contact-top__map {
    height: 22.5rem;
    width: 100%; }

.info-window-content {
  color: #fff;
  position: relative; }
  .info-window-content__title {
    font-family: 'futura-pt', sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.875rem;
    margin: 0 0 .8125rem; }
  .info-window-content__address {
    font-family: "Rubik", sans-serif;
    font-size: 1rem;
    line-height: 1.5rem;
    margin: 0 0 .6875rem; }
  .info-window-content__directions {
    color: #fff;
    font-family: 'futura-pt', sans-serif;
    font-size: 1rem;
    line-height: 1.5rem; }
  .info-window-content__directions-icon {
    display: inline-block;
    font-size: .75em;
    margin-left: .5rem; }
  .info-window-content__marker {
    bottom: -3.5rem;
    display: block;
    position: absolute;
    right: -4rem; }

.contact-content-section {
  background: #fff;
  padding-bottom: 6.5rem;
  padding-top: 3rem; }
  .contact-content-section__title {
    color: #072e43;
    margin: 0 0 1rem; }
  .contact-content-section__right-column {
    padding-top: 1.125rem; }

.post-content--contact {
  padding: 0; }
  .post-content--contact p, .post-content--contact p:first-child {
    font-family: "Rubik", sans-serif;
    font-size: 1rem;
    letter-spacing: .015em;
    line-height: 1.5em;
    margin: 0 0 1.8em; }

.contact-person {
  margin: 0 0 1.5rem; }
  .contact-person__name {
    display: block;
    float: left;
    margin: 0 .625rem 0 0; }
  .contact-person__email {
    line-height: 1.5rem; }
  .contact-person p.contact-person-position {
    float: left;
    font-size: .75rem;
    font-weight: 500;
    line-height: 1.5rem;
    margin: 0; }

.wpcf7 .columns {
  margin-bottom: .75rem; }

.wpcf7 input[type='text'], .wpcf7 input[type='email'], .wpcf7 input[type='tel'] {
  background-color: #fff;
  border: 1px solid #979797;
  border-radius: .75rem;
  color: #072e43;
  display: block;
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  letter-spacing: .01875em;
  line-height: 1.5rem;
  outline: none;
  padding: .875rem 1.375rem .625rem;
  width: 100%; }
  .wpcf7 input[type='text']::-webkit-input-placeholder, .wpcf7 input[type='email']::-webkit-input-placeholder, .wpcf7 input[type='tel']::-webkit-input-placeholder {
    color: #738684; }
  .wpcf7 input[type='text']::-moz-placeholder, .wpcf7 input[type='email']::-moz-placeholder, .wpcf7 input[type='tel']::-moz-placeholder {
    color: #738684; }
  .wpcf7 input[type='text']:-ms-input-placeholder, .wpcf7 input[type='email']:-ms-input-placeholder, .wpcf7 input[type='tel']:-ms-input-placeholder {
    color: #738684; }

.wpcf7 input[type='submit'] {
  display: block;
  float: right; }

.wpcf7 textarea {
  background-color: #fff;
  border: 1px solid #979797;
  border-radius: .75rem;
  color: #072e43;
  display: block;
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  height: 7.5rem;
  letter-spacing: .01875em;
  line-height: 1.5rem;
  outline: none;
  padding: 1.1875rem 1.375rem 1.5rem;
  width: 100%; }
  .wpcf7 textarea::-webkit-input-placeholder {
    color: #738684; }
  .wpcf7 textarea::-moz-placeholder {
    color: #738684; }
  .wpcf7 textarea:-ms-input-placeholder {
    color: #738684; }

.wpcf7 .wpcf7-not-valid-tip {
  color: #f03e39;
  font-family: "Rubik", sans-serif;
  font-size: .75rem;
  margin-top: .25rem;
  padding: 0 1.375rem; }

.wpcf7 .wpcf7-response-output {
  border: 0;
  font-family: "Rubik", sans-serif;
  margin: .75rem 0 1.25rem;
  padding: 0 1.375rem; }
  .wpcf7 .wpcf7-response-output.wpcf7-validation-errors, .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng {
    color: #f03e39; }
  .wpcf7 .wpcf7-response-output.wpcf7-success {
    color: #008283; }

@media screen and (max-width: 47.9375rem) {
  .contact-content-section {
    padding-bottom: 4rem;
    padding-top: 2.5rem; }
  .post-content--contact p {
    font-size: .875rem; }
    .post-content--contact p:first-child {
      font-size: .875rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.search-categories-bar {
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd; }

.search-results-section {
  padding-bottom: 1.25rem;
  padding-top: .5rem; }

.search-results-block {
  margin: 0 0 2rem;
  padding-top: 1.75rem; }
  .search-results-block__top {
    margin: 0 0 1.5rem; }
  .search-results-block__title {
    color: #072e43;
    float: left;
    margin: 0; }
  .search-results-block__link {
    display: block;
    float: right;
    line-height: 1.875rem; }
  .search-results-block__nothing-found {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    margin: 0;
    padding-bottom: 1.5rem; }
  .search-results-block__content-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .search-results-block__show-more-wrapper {
    display: none;
    text-align: center;
    width: 100%; }
  .search-results-block__show-more {
    display: inline-block;
    margin: 0 auto 1.5rem;
    text-decoration: none; }
    .search-results-block__show-more:after {
      content: '\f107';
      display: inline-block;
      font: normal normal normal 1em FontAwesome;
      margin-left: .25rem;
      -webkit-transform-origin: 50% 50%;
          -ms-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      -webkit-transition: -webkit-transform 200ms;
      transition: -webkit-transform 200ms;
      transition: transform 200ms;
      transition: transform 200ms, -webkit-transform 200ms; }
    .search-results-block__show-more span {
      display: inline-block; }
      .search-results-block__show-more span.less {
        display: none; }
    .search-results-block__show-more.active:after {
      -webkit-transform: rotate(-180deg);
          -ms-transform: rotate(-180deg);
              transform: rotate(-180deg); }
    .search-results-block__show-more.active span.less {
      display: inline-block; }
    .search-results-block__show-more.active span.more {
      display: none; }

@media screen and (max-width: 47.9375rem) {
  .search-results-block {
    border-bottom: 1px solid #d8d8d8;
    margin: 0; }
    .search-results-block:last-of-type {
      border-bottom: 0; }
    .search-results-block__show-more-wrapper {
      display: block; }
    .search-results-block__content > .row > .columns:nth-child(n+5) {
      display: none; }
    .search-results-block__content.showing-more > .row > .columns:nth-child(n+5) {
      display: block; } }

@media screen and (max-width: 26.1875rem) {
  .search-results-block .list-item__row .small-6 {
    width: 29.16%; }
  .search-results-block .list-item__content.small-6 {
    margin-left: 4.18%;
    width: 66.66%; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.about-top {
  background: url("../img/about-top-background.svg") no-repeat center center;
  -webkit-background-size: cover;
          background-size: cover;
  color: #fff;
  min-height: 32.375rem;
  overflow: hidden;
  padding-bottom: 6rem;
  padding-top: 9.125rem;
  position: relative;
  z-index: 2; }
  .about-top__title {
    line-height: 1.25;
    margin: 0 0 1.8125rem; }
  .about-top__desc {
    font-family: "Rubik", sans-serif;
    margin: 0; }
  .about-top__play-button {
    margin: 0 auto; }
  .about-top__play-desc {
    font-weight: 500;
    letter-spacing: .02rem;
    margin-top: 1.25rem;
    text-align: center; }

.about-nav {
  background: #fff;
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd;
  position: relative; }
  .about-nav__list {
    height: 3.8125rem;
    list-style: none;
    margin: 0;
    padding: 0; }
  .about-nav__list-element {
    float: left;
    margin-right: .5rem;
    margin-top: .4375rem; }
  .about-nav__list-element-link {
    border-radius: 4rem;
    color: #008283;
    display: block;
    font-size: 1.25rem;
    letter-spacing: .0625rem;
    line-height: 1.5rem;
    padding: .75rem 1.875rem;
    text-decoration: none;
    -webkit-transition: all 200ms;
    transition: all 200ms; }
    .about-nav__list-element-link--active {
      background-color: #008283;
      color: #fff; }
    .about-nav__list-element-link:hover {
      background-color: #008283;
      color: #fff; }
  .about-nav__download {
    background: #008283;
    bottom: 0;
    color: #fff;
    float: right;
    font-weight: bold;
    letter-spacing: .0625rem;
    padding: 1.125rem 2.5rem;
    position: absolute;
    right: 0;
    text-decoration: none;
    text-transform: uppercase;
    top: -1px;
    -webkit-transition: background 250ms;
    transition: background 250ms; }
    .about-nav__download::after {
      content: '';
      margin-left: 1.25rem;
      vertical-align: sub;
      width: 1.5625em;
      height: 1.4375em;
      background-position: -0.3125em -13.25em; }
      .lt-ie9 .about-nav__download::after {
        width: 24px;
        height: 22px;
        background-position: -5 -212px; }
    .about-nav__download:hover {
      background: #015f5f;
      color: #fff; }
    .about-nav__download--mobile {
      bottom: auto;
      -webkit-box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
              box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
      display: none;
      font-size: .875rem;
      padding: 1.125rem;
      position: fixed;
      text-align: center;
      top: 3rem;
      width: 100%;
      z-index: 4; }
  .about-nav--sticky {
    -webkit-box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
    left: 0;
    position: fixed;
    width: 100%;
    z-index: 4; }

.about-mission {
  overflow: hidden; }
  .about-mission__row-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .about-mission__block-gray {
    position: relative; }
    .about-mission__block-gray::after {
      background-color: rgba(108, 160, 201, 0.1);
      content: ' ';
      display: block;
      height: 100%;
      position: absolute;
      right: 0;
      top: 0;
      width: 250%; }
  .about-mission__title {
    color: #072e43;
    margin-top: 4.125rem; }
  .about-mission__desc {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    margin-bottom: 6.25rem; }
  .about-mission__image-column {
    position: relative; }
  .about-mission__image {
    background-position: center center;
    background-repeat: no-repeat;
    -webkit-background-size: cover;
            background-size: cover;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 50vw; }
  .about-mission__text-block {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    margin: 5.625rem 0;
    position: relative;
    z-index: 2; }
    .about-mission__text-block > *:first-child {
      margin-top: 0; }
  .about-mission__research {
    color: #072e43;
    margin-top: 5.625rem; }
  .about-mission__research-title {
    letter-spacing: .025rem;
    margin: 0; }
  .about-mission__research-desc {
    font-family: "Rubik", sans-serif;
    letter-spacing: .025rem;
    margin: 0;
    padding: .8125rem 0; }
  .about-mission__latest {
    border-bottom: 1px solid #ddd;
    padding-bottom: 15px;
    padding-top: 25px; }
  .about-mission__latest-title {
    float: left;
    margin: 0; }
  .about-mission__latest-all {
    float: right; }
  .about-mission__latest-reports {
    margin-bottom: 7.5rem;
    margin-top: 1.25rem; }
    .about-mission__latest-reports .list-item__image {
      margin-top: .3125rem; }
    .about-mission__latest-reports .large-2-5th {
      width: 40%; }
    .about-mission__latest-reports .large-3-5th {
      width: 60%; }

.about-quotes {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url("../img/homepage-top-background.svg") no-repeat center center;
  -webkit-background-size: cover;
          background-size: cover;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 34.5rem;
  padding-bottom: 7rem;
  padding-top: 7rem; }
  .about-quotes__marks {
    font-size: 2.25rem !important;
    margin-bottom: 1em; }
  .about-quotes__slider {
    padding: 0; }
  .about-quotes__quote {
    display: block;
    font-family: "Rubik", sans-serif;
    font-size: 1.5rem;
    font-style: italic;
    letter-spacing: .01875rem;
    max-width: 50rem;
    padding-left: .625rem;
    padding-right: .625rem;
    text-align: center; }
  .about-quotes__name {
    display: block;
    font-family: "Rubik", sans-serif;
    letter-spacing: .01875rem;
    margin: 2.8125rem 0 0;
    text-align: center; }
  .about-quotes__nav {
    margin: 2.8125rem 0 0;
    text-align: center; }

.orbit-bullets button {
  background-color: #fff;
  border-radius: 1rem;
  cursor: pointer;
  display: inline-block;
  height: 1rem;
  margin: .375rem .75rem;
  opacity: .35;
  outline: none;
  -webkit-transition: opacity .25s;
  transition: opacity .25s;
  width: 1rem; }
  .orbit-bullets button:hover, .orbit-bullets button.is-active {
    background-color: #fff;
    opacity: 1; }

.about-awards {
  background-color: rgba(108, 160, 201, 0.1);
  color: #072e43;
  padding: 2.25rem; }
  .about-awards__title {
    margin-bottom: 1.3125rem;
    margin-top: 3.3125rem; }
  .about-awards__img {
    border: solid .1875rem #fff;
    -webkit-box-shadow: 0 0.125rem 1.5625rem 0 rgba(0, 0, 0, 0.15);
            box-shadow: 0 0.125rem 1.5625rem 0 rgba(0, 0, 0, 0.15); }

.home-award--about {
  padding-bottom: 2.25rem;
  padding-top: 2.25rem; }

.about-team {
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover;
  color: #fff;
  overflow: hidden;
  padding-bottom: 13%;
  padding-top: 10%;
  position: relative; }
  .about-team:before {
    background-image: -webkit-gradient(linear, left top, right top, from(#008283), to(#7fc0c1));
    background-image: -webkit-linear-gradient(left, #008283, #7fc0c1);
    background-image: linear-gradient(to right, #008283, #7fc0c1);
    content: '';
    display: block;
    height: 100%;
    left: 0;
    opacity: .95;
    position: absolute;
    top: 0;
    width: 100%; }
  .about-team > .row {
    position: relative; }
  .about-team__title {
    margin-bottom: 1rem;
    margin-top: 0; }
  .about-team__desc {
    font-family: "Rubik", sans-serif;
    margin-bottom: 1.75rem; }
  .about-team__button {
    background-color: #fff;
    border: 2px solid #fff;
    border-radius: 5rem;
    color: #008283;
    float: left;
    font-weight: bold;
    letter-spacing: .0625rem;
    line-height: 1.2;
    padding: .875rem 2.5rem;
    text-decoration: none;
    text-transform: uppercase;
    -webkit-transition: color 250ms, background-color 250ms;
    transition: color 250ms, background-color 250ms; }
    .about-team__button:hover {
      background-color: transparent;
      color: #fff; }
  .about-team__vacancies-notice {
    display: inline-block;
    font-size: .9375rem;
    font-weight: 600;
    margin-top: 1rem; }
    .about-team__vacancies-notice a {
      color: #fefefe; }
    @media print, screen and (min-width: 26.25em) {
      .about-team__vacancies-notice {
        margin-left: 1rem;
        margin-top: .9rem; } }
    @media print, screen and (min-width: 48em) {
      .about-team__vacancies-notice {
        font-size: 1.0625rem;
        margin-left: 1rem;
        margin-top: .8125rem; } }
    @media screen and (min-width: 60em) {
      .about-team__vacancies-notice {
        font-size: 1.125rem;
        margin-top: .75rem; } }
  .about-team__current {
    border-bottom: 1px solid #ddd;
    padding-bottom: 15px;
    padding-top: 25px; }
  .about-team__current-title {
    float: left;
    margin: 0; }
  .about-team__current-all {
    color: #fff;
    float: right; }
    .about-team__current-all:hover {
      color: #ddd; }
  .about-team__current-vacancies {
    margin-top: .625rem; }
  .about-team .list-item {
    padding: 1rem 0; }
    .about-team .list-item__desc {
      font-family: "Rubik", sans-serif;
      font-size: .75rem;
      letter-spacing: .0125rem;
      line-height: 1.5;
      margin: 0; }

.about-history {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #072e43;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-bottom: 5.625rem;
  padding-top: 4.625rem; }
  .about-history__desc {
    font-family: "Rubik", sans-serif;
    margin-bottom: 2.625rem;
    max-width: 43.75rem;
    padding-left: .625rem;
    padding-right: .625rem;
    text-align: center; }
  .about-history__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .about-history__year-cont {
    margin-top: 3.8125rem;
    padding-right: 1.875rem; }
    .about-history__year-cont--first {
      margin-top: 2.3125rem; }
  .about-history__year {
    color: #6ca0ca;
    font-size: 96px;
    font-weight: 600;
    line-height: 1.3; }
    .about-history__year + .heading-4 {
      margin-top: 0; }
  .about-history__report-title {
    border-bottom: 1px solid #ddd;
    display: block;
    margin: 1.75rem 0 1.5rem;
    padding-bottom: .25rem;
    text-transform: uppercase; }
  .about-history__line {
    background: #ddd;
    width: 1px; }
  .about-history__text-blocks {
    margin-right: -1.875rem;
    margin-top: 5.25rem; }
    .about-history__text-blocks--first {
      margin-top: 3.75rem; }
  .about-history__text-block {
    color: #fff;
    padding: .75rem 1.75rem 1.87rem; }
    .about-history__text-block--title {
      background: #072e43;
      min-height: 9.75rem;
      position: relative; }
      .about-history__text-block--title::before {
        background: #fff;
        content: '';
        display: block;
        height: 1rem;
        left: -.5rem;
        position: absolute;
        top: .8125rem;
        -webkit-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
                transform: rotate(45deg);
        width: 1rem; }
    .about-history__text-block--impact1 {
      background: #b4b63c;
      min-height: 15rem; }
    .about-history__text-block--impact2 {
      background: #738684;
      min-height: 15rem; }
  .about-history__text-block-title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.29em;
    margin: 0; }
  .about-history__text-block-desc {
    font-family: "Rubik", sans-serif;
    margin: .6875rem 0 0; }
  .about-history__text-blocks-wrapper {
    position: relative; }
  .about-history__image-cont {
    background-position: center center;
    background-repeat: no-repeat;
    -webkit-background-size: cover;
            background-size: cover;
    height: 100%;
    overflow: hidden;
    position: absolute;
    right: -130%;
    top: 0;
    width: 130%; }
  .about-history__image {
    height: 100%;
    max-width: none; }

.about-funders {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top: 1px #ddd solid;
  color: #072e43;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-bottom: 4.625rem;
  padding-top: 3.625rem; }
  .about-funders--gray {
    background-color: rgba(108, 160, 201, 0.1);
    border-top: 0;
    padding: 4.625rem 0 5.625rem; }
  .about-funders__title {
    margin: 0 0 1.3125rem; }
  .about-funders__desc {
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.625rem;
    max-width: 37.5rem;
    padding-left: .625rem;
    padding-right: .625rem;
    text-align: center; }
  .about-funders__link {
    color: #008283;
    cursor: pointer;
    outline: none;
    position: relative;
    -webkit-transition: color 200ms;
    transition: color 200ms; }
    .about-funders__link span {
      display: inline-block;
      -webkit-transition: opacity 200ms, visibility 200ms;
      transition: opacity 200ms, visibility 200ms; }
      .about-funders__link span:after {
        display: inline-block;
        font: normal normal normal 14px/1 FontAwesome;
        margin-left: .5em; }
      .about-funders__link span.less {
        height: 100%;
        left: 0;
        opacity: 0;
        position: absolute;
        top: 0;
        visibility: hidden;
        width: 100%; }
      .about-funders__link span.more:after {
        content: '\f107'; }
      .about-funders__link span.less:after {
        content: '\f106'; }
    .about-funders__link:hover {
      color: #072e43; }
    .about-funders__link.active span.less {
      opacity: 1;
      visibility: visible; }
    .about-funders__link.active span.more {
      opacity: 0;
      visibility: hidden; }
  .about-funders__funders {
    color: #072e43;
    padding-top: 4rem; }
  .about-funders__funders-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .about-funders__funder {
    margin-bottom: 2.375rem; }
  .about-funders__funder-title {
    margin: 0; }
  .about-funders__funder-desc {
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    margin: .25rem 0 0; }

@media screen and (max-width: 73.75rem) {
  .about-nav__list-element {
    margin-right: .25rem; }
  .about-nav__list-element-link {
    padding: .75rem 1rem; }
  .about-team {
    padding-bottom: 5rem;
    padding-top: 5rem; } }

@media screen and (max-width: 64rem) {
  .about-history__image-cont {
    display: none; }
  .about-history__line {
    margin-left: 8.33333%;
    margin-right: -8.33333%; } }

@media screen and (max-width: 63.9375rem) {
  .about-nav {
    display: none;
    height: 0; } }

@media screen and (max-width: 47.9375rem) {
  .about-top {
    min-height: 0;
    padding-bottom: 3.25rem;
    padding-top: 6rem;
    z-index: 3; }
    .about-top__desc {
      font-size: .875rem; }
    .about-top .breadcrumbs {
      display: none; }
  .post-top__content--about {
    padding-bottom: 0;
    padding-top: 0; }
  .about-nav__download--mobile {
    display: block; }
  .about-mission__row-inner {
    display: block; }
  .about-mission__title {
    margin-top: 2.75rem;
    text-align: center; }
  .about-mission__desc {
    margin-bottom: 1.5rem;
    text-align: center; }
    .about-mission__desc p {
      font-size: .875rem; }
  .about-mission__image {
    height: auto;
    left: auto;
    padding-bottom: 48%;
    position: static;
    width: 100%; }
  .about-mission__block-gray:after {
    display: none; }
  .about-mission__text-block {
    margin: 2rem 0 .5rem; }
    .about-mission__text-block p,
    .about-mission__text-block ul {
      font-size: .875rem; }
  .about-mission__research {
    margin-top: 0; }
  .about-mission__research-desc {
    font-size: .875rem; }
  .about-mission__latest-reports {
    margin-bottom: 2.5rem; }
    .about-mission__latest-reports .large-2-5th {
      width: 29.16%; }
    .about-mission__latest-reports .large-3-5th {
      margin-left: 4.18%;
      width: 66.66%; }
  .about-quotes {
    min-height: 0;
    padding-bottom: 2.875rem;
    padding-top: 2.875rem; }
    .about-quotes__quote {
      font-size: 1.25rem; }
    .about-quotes__name {
      margin: 2.75rem 0 0; }
    .about-quotes__nav {
      margin: 2.375rem 0 0; }
  .about-team {
    padding-bottom: 3rem;
    padding-top: 3rem; }
    .about-team .column:first-child, .about-team .columns:first-child {
      margin-bottom: 3rem;
      text-align: center; }
    .about-team__desc {
      font-size: .875rem; }
    .about-team__button {
      display: inline-block;
      float: none; }
  .about-history {
    padding-bottom: 3rem;
    padding-top: 3.625rem; }
    .about-history > h1 {
      text-align: center; }
    .about-history__desc {
      font-size: .875rem;
      line-height: 1.5rem;
      margin-bottom: 0; }
    .about-history__item {
      display: block; }
    .about-history__year {
      margin: 0; }
    .about-history__year-cont {
      margin-top: 3.625rem; }
    .about-history__text-blocks {
      margin-right: 0;
      margin-top: 2.75rem; }
    .about-history__text-blocks-wrapper {
      min-height: 0; }
    .about-history__line {
      display: none; }
    .about-history__text-block {
      padding-bottom: 1.25rem;
      padding-top: 1.25rem; }
      .about-history__text-block--title {
        min-height: 0; }
        .about-history__text-block--title:before {
          left: 0;
          margin: 0 auto;
          right: 0;
          top: -.5rem; }
      .about-history__text-block--impact1 {
        min-height: 0; }
      .about-history__text-block--impact2 {
        min-height: 0; }
    .about-history__text-block-desc {
      font-size: .875rem;
      line-height: 1.5rem; }
    .about-history__reports .list-item__row .columns:first-child {
      width: 29.16%; }
    .about-history__reports .list-item__row .columns:last-child {
      margin-left: 4.18%;
      width: 66.66%; }
  .about-funders__title {
    font-size: 1.5rem; }
  .about-funders__desc {
    font-size: .875rem;
    line-height: 1.5rem; }
  .about-funders__funder {
    margin-bottom: 1.25rem; } }

@media screen and (max-width: 26.1875rem) {
  .about-top__title {
    margin: 0 0 1rem;
    text-align: center; }
  .about-top__desc {
    margin: 0 0 1.5rem;
    text-align: center; }
  .about-team__current {
    padding-top: 0;
    text-align: center; }
  .about-team__current-title {
    float: none;
    margin-bottom: .75rem; }
  .about-team__current-all {
    float: none; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

@media print, screen and (min-width: 48em) {
  .team-content {
    padding-bottom: 4.125rem; } }

.team-grid .team-grid-inner {
  overflow: hidden;
  -webkit-transition: height .6s;
  transition: height .6s; }
  .team-grid .team-grid-inner.arranged .team-grid-element {
    opacity: 1; }

.team-filters-block {
  margin-bottom: 2rem; }

.team-filters {
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd;
  font-size: 1rem;
  line-height: 1.5rem;
  margin-bottom: 1rem;
  padding-bottom: .9375rem;
  padding-left: 1.125rem;
  padding-right: 1.125rem;
  padding-top: .9375rem; }
  .team-filters__vacancies-btn {
    float: right;
    text-decoration: none; }
  @media screen and (max-width: 47.9375em) {
    .team-filters {
      text-align: center; }
      .team-filters__vacancies-btn {
        float: none; } }

.team-filters-list {
  float: left;
  list-style: none;
  margin: 0;
  padding: 0; }
  .team-filters-list__item {
    display: inline-block;
    margin-right: .5rem; }
  .team-filters-list__item-link {
    border-radius: 1.125rem;
    color: #008283;
    display: inline-block;
    padding: .375rem 1.25rem;
    text-decoration: none;
    -webkit-transition: background-color 250ms ease-out, color 250ms ease-out;
    transition: background-color 250ms ease-out, color 250ms ease-out; }
    .team-filters-list__item-link--active {
      background: #008283;
      color: #fff; }
    .team-filters-list__item-link:hover {
      background: #008283;
      color: #fff; }
  @media screen and (max-width: 47.9375em) {
    .team-filters-list {
      margin-bottom: .5rem;
      width: 100%; }
      .team-filters-list__item {
        margin-bottom: .5rem;
        margin-left: .25rem;
        margin-right: .25rem; } }

.team-filters-child-list {
  display: none;
  list-style: none;
  margin: 0 0 .5rem;
  padding: 0; }
  .team-filters-child-list__item {
    display: inline-block;
    margin-bottom: .5rem;
    margin-right: .5rem; }
  .team-filters-child-list__item-link {
    border-radius: 1.125rem;
    color: #008283;
    display: inline-block;
    padding: .375rem 1.25rem;
    text-decoration: none;
    -webkit-transition: background-color 250ms ease-out, color 250ms ease-out;
    transition: background-color 250ms ease-out, color 250ms ease-out; }
    .team-filters-child-list__item-link--active {
      background: #008283;
      color: #fff; }
    .team-filters-child-list__item-link:hover {
      background: #008283;
      color: #fff; }
  .team-filters-child-list--active {
    display: block; }

.page-content-section--team {
  padding-top: 1rem; }
  @media print, screen and (min-width: 48em) {
    .page-content-section--team {
      padding-top: 4rem; } }

.page-content-section__back-to-about {
  border-bottom: 1px solid #ddd;
  padding-bottom: 1.25rem; }

.page-content-section__back-to-about-link {
  display: inline-block;
  line-height: 1.5em;
  text-decoration: none; }
  .page-content-section__back-to-about-link:before {
    content: '\f104';
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    margin-right: .75rem; }

.post-content--team {
  color: #072e43;
  padding: 1.875rem 0 4.125rem; }
  .post-content--team h1 {
    margin: 1.875rem 0; }
  .post-content--team p {
    font-size: 1rem;
    line-height: 1.5em;
    margin: 0 0 1.5em; }

.group-wrap {
  margin-bottom: 1.25rem; }
  .group-wrap.hidden {
    display: none; }
  .group-wrap__title {
    border-bottom: 1px solid #ddd;
    color: #072e43;
    display: block;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .0125em;
    line-height: 1.5em;
    margin-bottom: 1.375rem;
    padding-bottom: .25em;
    text-transform: uppercase; }
  .group-wrap .row-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

.team-grid-element {
  margin: 0 0 3.5rem;
  position: relative;
  -webkit-transition: opacity .4s ease-out;
  transition: opacity .4s ease-out; }
  .team-grid-element__photo-wrapper {
    border: 1px solid #ddd;
    border-radius: .75rem;
    margin: 0 0 1.1875rem;
    overflow: hidden; }
    .team-grid-element__photo-wrapper img {
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden;
      display: block;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: -webkit-transform 150ms ease-in;
      transition: -webkit-transform 150ms ease-in;
      transition: transform 150ms ease-in;
      transition: transform 150ms ease-in, -webkit-transform 150ms ease-in;
      width: 100%; }
  .team-grid-element__member-name {
    display: block;
    font-weight: 600;
    line-height: 1.5em;
    margin: 0 0 .25rem; }
  .team-grid-element__member-name-link {
    color: #072e43;
    text-decoration: none; }
  .team-grid-element__member-position {
    color: #072e43;
    display: block;
    font-family: "Rubik", sans-serif;
    font-size: .9375rem;
    line-height: 1.5em; }
  .team-grid-element__link {
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .team-grid-element:hover .team-grid-element__member-name-link {
    color: #008283; }
  .team-grid-element:hover .team-grid-element__photo-wrapper img {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.about-team__current--team {
  border-bottom-color: #072e43;
  color: #072e43;
  margin-bottom: 1.125rem;
  padding-top: .9375rem; }

.team-sidebar {
  float: right;
  margin-bottom: 2rem;
  text-align: center; }
  .team-sidebar__button {
    display: none;
    margin: 0 auto 1.5rem;
    text-decoration: none; }
    .team-sidebar__button:after {
      content: '\f107';
      display: inline-block;
      font: normal normal normal 1em FontAwesome;
      margin-left: .25rem;
      -webkit-transform-origin: 50% 50%;
          -ms-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      -webkit-transition: -webkit-transform 500ms;
      transition: -webkit-transform 500ms;
      transition: transform 500ms;
      transition: transform 500ms, -webkit-transform 500ms; }
    .team-sidebar__button span {
      display: inline-block; }
      .team-sidebar__button span.hide-jobs {
        display: none; }
    .team-sidebar__button.active:after {
      -webkit-transform: rotate(-180deg);
          -ms-transform: rotate(-180deg);
              transform: rotate(-180deg); }
    .team-sidebar__button.active span.hide-jobs {
      display: inline-block; }
    .team-sidebar__button.active span.show-jobs {
      display: none; }
  .team-sidebar__row.row {
    margin-left: 0;
    margin-right: 0; }
  .team-sidebar__row-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .team-sidebar__wrapper {
    text-align: left; }

.team-board-member {
  color: #072e43;
  font-size: .8125rem;
  font-weight: 600;
  margin-bottom: 2.25rem;
  text-align: center; }
  @media screen and (min-width: 60em) {
    .team-board-member {
      padding: 0;
      text-align: left; } }
  .team-board-member__name {
    color: #008283;
    font-size: inherit;
    line-height: 1em;
    margin: 0 0 .75rem; }
  .team-board-member__job-title:after {
    content: ', '; }
  .team-board-member__details {
    margin: 0; }
  .team-board-member__organisation {
    font-weight: normal; }

.team-vacancies {
  margin-bottom: 2.125rem; }
  .team-vacancies__row-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

@media print, screen and (min-width: 48em) {
  .list-item--team {
    margin-bottom: 1.625rem;
    padding: 1rem .625rem; } }

.list-item__title--team {
  color: #008283;
  padding-top: 0; }
  .list-item__title--team > a {
    text-decoration: none; }

.list-item__desc--team {
  font-family: "Rubik", sans-serif;
  font-size: .75rem;
  letter-spacing: .0125rem;
  line-height: 1.5;
  margin: 0; }

.team-join {
  background: #f0f5f9;
  color: #072e43;
  margin: 0 -1.25rem;
  padding: 2.875rem 1.25rem 3.75rem;
  text-align: center; }
  .team-join__title {
    margin: 0 0 .75rem; }
  .team-join__desc {
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.875rem; }

.team-member {
  background-image: url("../img/member-bg.svg");
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover;
  display: none;
  height: 100%;
  left: 0;
  opacity: 0;
  overflow: hidden;
  position: fixed;
  top: 0;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  transition: opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  transition: transform 550ms ease-out, opacity 550ms, visibility 550ms;
  transition: transform 550ms ease-out, opacity 550ms, visibility 550ms, -webkit-transform 550ms ease-out;
  visibility: hidden;
  width: 100%;
  z-index: 6; }
  .team-member.overflow-scroll {
    overflow-y: scroll; }
  .team-member__row {
    padding-bottom: 3rem;
    padding-top: 8rem;
    position: relative; }
  .team-member__close-button {
    color: #fff;
    cursor: pointer;
    display: block;
    font-weight: 600;
    letter-spacing: .01875rem;
    line-height: 1.75rem;
    outline: none;
    position: absolute;
    right: -3rem;
    top: 4.5rem; }
    .team-member__close-button:last-of-type {
      display: none; }
  .team-member__close-button-x {
    display: inline-block;
    height: 1.75em;
    margin-left: 1.25em;
    position: relative;
    -webkit-transition: -webkit-transform 400ms ease-in-out;
    transition: -webkit-transform 400ms ease-in-out;
    transition: transform 400ms ease-in-out;
    transition: transform 400ms ease-in-out, -webkit-transform 400ms ease-in-out;
    vertical-align: top;
    width: 1.75em; }
    .team-member__close-button-x:before, .team-member__close-button-x:after {
      background: #fff;
      bottom: 0;
      content: '';
      display: block;
      height: 100%;
      left: 0;
      margin: auto;
      position: absolute;
      right: 0;
      top: 0;
      -webkit-transform-origin: 50% 50%;
          -ms-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      width: 2px; }
    .team-member__close-button-x:before {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .team-member__close-button-x:after {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .team-member__close-button-x:hover {
      opacity: 1; }
    .team-member__close-button-x:hover {
      -webkit-transform: rotate(720deg);
          -ms-transform: rotate(720deg);
              transform: rotate(720deg); }
  .team-member__photo-wrapper {
    padding-right: 0; }
  .team-member__photo {
    -webkit-box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.3125rem 1.5625rem 0 rgba(0, 0, 0, 0.25);
    display: block;
    height: auto;
    width: 100%; }
  .team-member__top {
    border-left: 4px solid #6ca0ca;
    margin: 1.875rem 0 1.5rem;
    padding: 0 0 0 1.5625rem; }
  .team-member__name {
    color: #fff;
    margin: 0 0 .1875rem; }
  .team-member__position {
    color: #072e43;
    display: block;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.25em; }
  .team-member__content {
    color: #fff;
    font-family: "Rubik", sans-serif; }
    .team-member__content p {
      margin: 1.5em 0; }
    .team-member__content a {
      color: #fff; }
  .team-member--display {
    display: block; }
  .team-member--show {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    visibility: visible; }

@media screen and (max-width: 85.5rem) {
  .team-member__close-button {
    right: 0; } }

@media screen and (max-width: 64rem) {
  .team-sidebar__button {
    display: inline-block; }
  .team-sidebar__row-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .list-item--team {
    padding-left: .5rem;
    padding-right: .5rem;
    text-align: center; }
  .about-team__current-title--team {
    text-align: center;
    width: 100%; }
  .team-join {
    margin: 0;
    padding-left: 0;
    padding-right: 0; }
    .team-join .row .columns {
      padding: 0; }
  .team-grid {
    margin-top: 0; }
  .team-grid-element {
    margin: 0 0 2.875rem; }
  .post-content--team {
    padding: 1.125rem 0 1.75rem; }
  .team-member__row {
    padding-top: 6rem; }
  .team-member__close-button {
    top: 2.5rem; }
  .team-member__top {
    margin-left: -2.25rem;
    margin-top: .5rem; }
  .team-member__content {
    margin-left: -2.25rem; } }

@media screen and (max-width: 47.9375rem) {
  .team-join {
    margin: 0 -1.3125rem;
    padding: 1.5rem 1.3125rem 2rem; }
  .team-member__row {
    padding-top: 4.5rem; }
  .team-member__close-button {
    top: 1.5rem; }
    .team-member__close-button:last-of-type {
      bottom: 1.5rem;
      display: block;
      top: auto; }
  .team-member__content p,
  .team-member__content ul,
  .team-member__content ol {
    font-size: .875rem;
    line-height: 1.5rem; } }

@media screen and (max-width: 26.1875rem) {
  .team-grid-element {
    margin: 0 0 2.125rem; }
    .team-grid-element__member-name {
      margin: 0 0 1rem; }
  .about-team__current--team > h1 {
    margin-bottom: 0; }
  .list-item--team {
    border-bottom: 1px solid #d8d8d8;
    padding: 1.25rem 0 1.5rem;
    text-align: left; }
    .list-item--team:first-child {
      padding-top: .75rem; }
    .list-item--team:last-child {
      border-bottom: 0;
      padding-bottom: 0; }
  .team-join {
    margin: 0 -1rem;
    padding-left: 1rem;
    padding-right: 1rem; }
  .team-member__photo-wrapper {
    margin-bottom: 2rem; }
  .team-member__top {
    margin-left: 0; }
  .team-member__content {
    margin-left: 0; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.refs-content-section {
  padding-top: 4.625rem;
  position: relative; }

.refs-content__top {
  border-bottom: 1px solid #d8d8d8;
  color: #072e43;
  margin: 0 0 2.25rem;
  padding: 0 0 2.5rem; }

.refs-content__title {
  margin: 0 0 1rem; }

.refs-content__desc {
  margin: 0;
  max-width: 36.25rem; }

.refs-content__key-terms {
  margin: 0 0 4.125rem; }

.refs-content__key-terms-top {
  margin: 0 0 2.125rem; }

.refs-content__key-terms-title {
  color: #072e43;
  float: left;
  margin: 0; }

.refs-content__key-terms-link {
  float: right;
  line-height: 1.875rem; }

.refs-content__key-terms-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.refs-content__key-term {
  margin-bottom: 2.125rem; }

.refs-content__key-term-title {
  font-size: 1.25rem;
  line-height: 1.2em;
  margin: 0 0 .875rem; }

.refs-content__key-term-title-link {
  text-decoration: none; }

.refs-content__key-term-desc {
  color: #072e43;
  font-family: "Rubik", sans-serif;
  margin: 0; }

.refs-content__archives-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.refs-archive {
  margin: 0 0 3rem; }
  .refs-archive__image-wrapper {
    overflow: hidden; }
  .refs-archive__image {
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    display: block;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    -webkit-transition: -webkit-transform 150ms ease-in;
    transition: -webkit-transform 150ms ease-in;
    transition: transform 150ms ease-in;
    transition: transform 150ms ease-in, -webkit-transform 150ms ease-in; }
  .refs-archive__title {
    margin: 1.5rem 0; }
  .refs-archive__title-link {
    color: #072e43;
    text-decoration: none; }
    .refs-archive__title-link:hover {
      color: #008283; }
  .refs-archive__desc {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    margin: 0 0 1.125rem; }
  .refs-archive:hover .refs-archive__image {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 800ms cubic-bezier(0.215, 0.61, 0.355, 1); }

.refs-faq-section {
  border-top: 1px solid #d8d8d8;
  padding: 2.25rem 0 0; }
  .refs-faq-section__title {
    color: #072e43;
    margin: 0 0 1.5rem; }
  .refs-faq-section__desc {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    margin: 0 0 2rem; }
  .refs-faq-section__search {
    margin: 0 0 2rem;
    position: relative; }
  .refs-faq-section__search-field {
    border: 1px solid #ddd;
    border-bottom-right-radius: 4em;
    border-top-right-radius: 4em;
    color: #072e43;
    display: block;
    font-family: 'futura-pt', sans-serif;
    font-size: 1.5rem;
    height: 2.5em;
    letter-spacing: .01875rem;
    line-height: 1em;
    outline: none;
    padding: .75em 3em .75em 1.25em;
    width: 100%; }
    .refs-faq-section__search-field::-webkit-input-placeholder {
      color: #072e43; }
    .refs-faq-section__search-field::-moz-placeholder {
      color: #072e43; }
    .refs-faq-section__search-field:-ms-input-placeholder {
      color: #072e43; }
  .refs-faq-section__search-btn {
    background: #008283;
    border-radius: 50%;
    bottom: 0;
    cursor: pointer;
    display: block;
    height: 3rem;
    margin: auto 0;
    outline: none;
    position: absolute;
    right: .4375rem;
    text-align: center;
    top: 0;
    -webkit-transition: background-color 250ms;
    transition: background-color 250ms;
    width: 3rem; }
    .refs-faq-section__search-btn:after {
      content: '';
      -webkit-transform: scale(1.7);
          -ms-transform: scale(1.7);
              transform: scale(1.7);
      -webkit-transform-origin: 50% 50%;
          -ms-transform-origin: 50% 50%;
              transform-origin: 50% 50%;
      width: 0.6875em;
      height: 0.6875em;
      background-position: -0.3125em -47.625em; }
      .lt-ie9 .refs-faq-section__search-btn:after {
        width: 10px;
        height: 10px;
        background-position: -5 -762px; }
    .refs-faq-section__search-btn:hover {
      background: #072e43; }

.refs-faqs {
  margin: 0 0 2rem;
  padding: 0; }
  .refs-faqs__item:last-child > .accordion-title {
    border-bottom-color: transparent; }
    .refs-faqs__item:last-child > .accordion-title[aria-expanded='true'] {
      border-bottom-color: #008283; }
  .refs-faqs__item:last-child > .accordion-content:last-child {
    border-bottom: 0; }
  .refs-faqs__item--hidden {
    display: none; }
  .refs-faqs__item-title {
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    border-top: 1px solid #d8d8d8;
    color: #008283;
    font-family: "Rubik", sans-serif;
    font-size: 1rem;
    padding: 1.125rem 2.5rem;
    text-decoration: none;
    -webkit-transition: color 200ms, background 200ms, border-color 200ms;
    transition: color 200ms, background 200ms, border-color 200ms; }
    .refs-faqs__item-title:before {
      display: none; }
    .refs-faqs__item-title:hover, .refs-faqs__item-title[aria-expanded='true'] {
      background: #008283;
      border-bottom-color: #008283;
      border-top-color: #008283;
      color: #fff; }
  .refs-faqs__item-content {
    background: #f0f5f9;
    border: 0;
    padding: 1.875rem 2.5rem 1.5rem; }
    .refs-faqs__item-content p {
      font-family: "Rubik", sans-serif;
      margin: 0 0 1.5rem; }
  .refs-faqs__item-button {
    margin-bottom: 1.5rem; }

.refs-sidebar-column {
  padding-top: 1.875rem; }

.refs-sidebar__top {
  margin-bottom: 1.1875rem; }

.refs-sidebar__desc {
  color: #072e43;
  font-family: "Rubik", sans-serif;
  margin: 0 0 1rem; }

.refs-sidebar__tools {
  margin-top: 2.625rem; }
  .refs-sidebar__tools .resource-tile {
    margin-bottom: 3rem; }

.refs-bottom-archives {
  background: #f0f5f9; }
  .refs-bottom-archives .row {
    padding-bottom: 4.5rem;
    padding-top: 3rem;
    position: relative; }
    .refs-bottom-archives .row:before {
      background: #d8d8d8;
      content: '';
      display: block;
      height: 100%;
      left: 50%;
      margin-left: -4.166666%;
      position: absolute;
      top: 0;
      width: 1px; }

.refs-bottom-archive__title {
  margin: 0 0 .75rem; }

.refs-bottom-archive__title-link {
  color: #072e43;
  text-decoration: none; }
  .refs-bottom-archive__title-link:hover {
    color: #008283; }

.refs-bottom-archive__desc {
  color: #072e43;
  font-family: "Rubik", sans-serif;
  margin: 0 0 1rem; }

@media screen and (max-width: 64rem) {
  .refs-sidebar__button {
    padding-left: 1rem;
    padding-right: 1rem; } }

@media screen and (max-width: 47.9375rem) {
  .refs-content-section {
    padding-top: 2.375rem; }
  .refs-content__key-terms {
    margin: 0 0 2.5rem; }
  .refs-content__key-term-desc {
    font-size: .875rem;
    line-height: 1.5rem; }
  .refs-archive__desc {
    font-size: .875rem;
    line-height: 1.5rem; }
  .refs-faq-section__desc {
    font-size: .875rem;
    line-height: 1.5rem; }
  .refs-faqs {
    margin-left: -1.3125rem;
    margin-right: -1.3125rem; }
    .refs-faqs__item-title {
      font-size: .875rem;
      line-height: 1.25em;
      padding: 1.125rem 1.5rem; }
    .refs-faqs__item-content {
      font-size: .875rem;
      padding: 1.5rem 1.5rem .5rem; }
      .refs-faqs__item-content p {
        line-height: 1.5rem; }
    .refs-faqs__item-button {
      padding: .75em 1.5em; }
  .refs-sidebar__desc {
    font-size: .875rem;
    line-height: 1.5rem; }
  .refs-bottom-archives .row {
    padding-bottom: 3rem;
    padding-top: 2.5rem; }
    .refs-bottom-archives .row:before {
      display: none; }
  .refs-bottom-archive {
    margin-bottom: 2rem; }
    .refs-bottom-archive__desc {
      font-size: .875rem;
      line-height: 1.5rem; }
    .refs-bottom-archive:last-child {
      margin-bottom: 0; } }

@media screen and (max-width: 26.1875rem) {
  .refs-content__top {
    text-align: center; }
  .refs-faq-section__title {
    text-align: center; }
  .refs-faq-section__desc {
    text-align: center; }
  .refs-faq-section__search-field {
    font-size: 1.25rem;
    height: auto;
    line-height: 1.5rem;
    padding: .875em 3em .875em 1rem; }
  .refs-faq-section__search-btn {
    right: .375rem; }
  .refs-faqs {
    margin-left: -1rem;
    margin-right: -1rem; }
  .refs-sidebar {
    text-align: center; }
    .refs-sidebar__top h1 {
      width: 100%; }
    .refs-sidebar__tools {
      text-align: left; }
  .refs-archive__button {
    width: 100%; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.category-top--tools {
  padding-bottom: 2.625rem; }

.category-top__top--tools p {
  font-family: 'futura-pt', sans-serif; }

.tools-grid-section {
  padding-bottom: 4.75rem;
  padding-top: 4.125rem; }

.tools-grid__item {
  margin-bottom: 3.375rem; }

.tools-grid__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

@media screen and (max-width: 63.9375rem) {
  .tools-grid-section {
    padding-top: 3.875rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.terms-content-section {
  padding-bottom: 6.75rem; }

.term-article {
  border-top: 1px solid #d8d8d8;
  margin-bottom: 3rem;
  padding-top: 3rem; }
  .term-article:first-child {
    border-top: 0;
    padding-top: 2.25rem; }
  .term-article__title {
    margin: 0 0 1rem; }

.post-content--term {
  padding: 0; }
  .post-content--term ul {
    padding: 3rem 6.25rem 1.5rem; }

.terms-sidebar-column {
  padding-top: 2.25rem; }

@media screen and (max-width: 64rem) {
  .terms-content-section {
    padding-bottom: 5rem; }
  .post-content--term p,
  .post-content--term ul,
  .post-content--term ol {
    font-size: 1rem; }
  .post-content--term ul {
    margin: 0 -3.25rem 2.875rem;
    padding: 3rem 4.25rem 1.5rem; } }

@media screen and (max-width: 59.9375rem) {
  .post-content--term ul {
    margin: 0 -2.875rem 2.875rem;
    padding: 3rem 3.875rem 1.5rem; } }

@media screen and (max-width: 47.9375rem) {
  .terms-content-section {
    padding-bottom: 1.5rem; }
  .post-content--term p,
  .post-content--term ul,
  .post-content--term ol {
    font-size: .875rem;
    line-height: 1.5rem; }
  .post-content--term ul {
    margin: 0 -1.3125rem 1.875rem;
    padding: 2rem 2.5rem 1.5rem; }
  .term-article {
    margin-bottom: 2rem;
    padding-top: 2rem; } }

@media screen and (max-width: 26.1875rem) {
  .post-content--term ul {
    margin: 0 -1rem 1.875rem; } }

/**
 * The following variable and function originate from the sass-mq library.
 * If you have already included it, you can eliminate the below
 * https://github.com/sass-mq/sass-mq/blob/master/_mq.scss
 */
.site-search__button:after, .report-tile__latest:before, .key-term-block__article:before, .login-modal:before, .home-company-reports__image, .search-bar__search-button:after, .load-more-posts__button:before, .blog-section-top__title--events:before, .post-sidebar__related-report-top-title-press-release:before, .post-top__login-info-title:before, .about-nav__download::after, .refs-faq-section__search-btn:after {
  display: inline-block;
  background-image: url("../../dist/img//sprite.svg");
  -webkit-background-size: 41.3125em 51.0625em;
          background-size: 41.3125em 51.0625em; }

.lt-ie9 .site-search__button:after, .lt-ie9 .report-tile__latest:before, .lt-ie9 .key-term-block__article:before, .lt-ie9 .login-modal:before, .lt-ie9 .home-company-reports__image, .lt-ie9 .search-bar__search-button:after, .lt-ie9 .load-more-posts__button:before, .lt-ie9 .blog-section-top__title--events:before, .lt-ie9 .post-sidebar__related-report-top-title-press-release:before, .lt-ie9 .post-top__login-info-title:before, .lt-ie9 .about-nav__download::after, .lt-ie9 .refs-faq-section__search-btn:after {
  background-image: url(); }

.home-top--lang {
  min-height: 420px; }

.home-about-lang-section {
  padding: 1.625rem 0 0; }

.home-lang-title {
  border-bottom: 1px solid #ddd;
  margin: 0;
  padding: 1rem 0;
  text-align: center; }
  .home-lang-title--margin {
    margin: 0 0 2.625rem; }
  .home-lang-title--align-left {
    text-align: left; }

.blockquote.home-about-lang-blockquote {
  margin: 0; }

.post-content--lang {
  margin: 0;
  padding: 2.625rem 0 2.375rem; }
  .post-content--lang p {
    font-size: 1rem;
    letter-spacing: .015em;
    line-height: 1.5em;
    margin: 0 0 1.5em; }
    .post-content--lang p:first-child {
      font-family: "Rubik", sans-serif;
      font-size: 1rem;
      letter-spacing: .015em;
      line-height: 1.5em;
      margin: 0 0 1.5em; }
      .post-content--lang p:first-child + p {
        border-top: 0; }

.home-content-lang-section {
  padding: 0 0 4.375rem; }

.home-lang-reports .list-item:last-child {
  border-bottom: 0; }

.home-lang-press-release {
  margin: 1.25rem 0 2rem; }
  .home-lang-press-release__title {
    margin: 0 0 .25rem; }
  .home-lang-press-release__title-link {
    text-decoration: none; }
  .home-lang-press-release__excerpt {
    color: #072e43;
    font-family: "Rubik", sans-serif;
    font-size: .75rem;
    margin: 0; }

.home-blog-lang-articles {
  padding-bottom: 10rem; }
  .home-blog-lang-articles .list-item:last-child {
    border-bottom: 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3pvb20uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwibW9kdWxlcy9fc2xpY2suc2NzcyIsIm1vZHVsZXMvX2dyaWQtaGVscGVyLnNjc3MiLCJtb2R1bGVzL19idXR0b24uc2NzcyIsIm1vZHVsZXMvX3RleHQtYnV0dG9uLnNjc3MiLCJtb2R1bGVzL19sYW5ndWFnZS1zd2l0Y2hlci5zY3NzIiwibW9kdWxlcy9fc2l0ZS1zZWFyY2guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yb3VuZGVkLnNjc3MiLCJfc3ByaXRlLnNjc3MiLCJtb2R1bGVzL19zb2NpYWwtbmF2aWdhdGlvbi5zY3NzIiwibW9kdWxlcy9fdG9wLWJhci5zY3NzIiwibW9kdWxlcy9fZm9vdGVyLnNjc3MiLCJtb2R1bGVzL19yZXBvcnQtdGlsZS5zY3NzIiwibW9kdWxlcy9fbGlzdC1pdGVtLnNjc3MiLCJtb2R1bGVzL190b29sdGlwLWljb24uc2NzcyIsIm1vZHVsZXMvX3Jlc291cmNlLXRpbGUuc2NzcyIsIm1vZHVsZXMvX2JyZWFkY3J1bWJzLnNjc3MiLCJtb2R1bGVzL19yZWxhdGVkLWxpbmsuc2NzcyIsIm1vZHVsZXMvX25ld3NsZXR0ZXItc2VjdGlvbi5zY3NzIiwibW9kdWxlcy9fd3AtY2FwdGlvbi5zY3NzIiwibW9kdWxlcy9fa2V5LXRlcm0tYmxvY2suc2NzcyIsIm1vZHVsZXMvX3JlcG9ydC1ibG9jay5zY3NzIiwibW9kdWxlcy9fcmVwb3J0LWl0ZW0uc2NzcyIsIm1vZHVsZXMvX3BsYXktYnV0dG9uLnNjc3MiLCJtb2R1bGVzL19leHRlcm5hbC1saW5rLnNjc3MiLCJtb2R1bGVzL19zdGlja3ktbmF2YmFyLnNjc3MiLCJtb2R1bGVzL19sb2dpbi5zY3NzIiwibW9kdWxlcy9fcmVwb3J0LXBvcHVwLnNjc3MiLCJwYWdlcy9faG9tZXBhZ2Uuc2NzcyIsInBhZ2VzL19uZXdzLWFuZC1ldmVudHMuc2NzcyIsInBhZ2VzL19jYXRlZ29yeS5zY3NzIiwicGFnZXMvX3NpbmdsZS1wb3N0LnNjc3MiLCJwYWdlcy9fc2luZ2xlLXJlcG9ydC5zY3NzIiwicGFnZXMvX3JlcG9ydHMuc2NzcyIsInBhZ2VzL19wYWdlLnNjc3MiLCJwYWdlcy9fY29udGFjdC5zY3NzIiwicGFnZXMvX3NlYXJjaC5zY3NzIiwicGFnZXMvX2Fib3V0LnNjc3MiLCJwYWdlcy9fdGVhbS5zY3NzIiwicGFnZXMvX3JlZmVyZW5jZXMtYW5kLXJlc291cmNlcy5zY3NzIiwicGFnZXMvX3Rvb2xzLWFuZC1pbnNpZ2h0cy5zY3NzIiwicGFnZXMvX3Rlcm1zLnNjc3MiLCJwYWdlcy9faG9tZXBhZ2UtbGFuZ3VhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7O0dBS0c7QUNMSDs7R0FFRztBQzZCSDs7OztHQUlHO0FBd0VIO0VBQ0ksc0JBQXNCO0VBQ3RCLG9EQUFxQjtFQUNyQiw2Q0FuRFk7VUFtRFoscUNBbkRZLEVBb0RmOztBQUVEO0VBQ0ssd0JBQXFCLEVBQ3pCOztBQ3hHQztFQVJBLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYixxQ0FGaUI7TUFFakIsaUNBRmlCO1VBRWpCLDZCQUZpQjtFQ3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFHMUMsb0NBQTRCO1VBQTVCLDRCQUE0QixFQ1IzQjs7QUpaSDtFRTBDRSxpQ0FGaUI7TUFF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LG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYixXRi9Ca0M7RUtEbEMscUNBQTZCO0VBQTdCLDZCQUE2QixFREU1Qjs7QUpESDtFRStCRSxXRi9CcUMsRUlhcEM7O0FKVkg7RUF0QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUpxQ1osOEJBRmlCO01BRWpCLDBCQUZpQjtVQUVqQixzQkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSkVIO0VFNEJFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKVEg7RUF2QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUpvQ2QsZ0NBRmlCO01BRWpCLDRCQUZpQjtVQUVqQix3QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSkdIO0VFMkJFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKUkg7RUF4QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHNESW5DZTtVSm1DZiw4Q0luQ2U7RUptQ2YsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSklIO0VFMEJFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKUEg7RUF6QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHNESWxDYTtVSmtDYiw4Q0lsQ2E7RUprQ2IsK0JBRmlCO01BRWpCLDJCQUZpQjtVQUVqQix1QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSktIO0VFeUJFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKTkg7RUExQkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUpxQ1osaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSk1IO0VFd0JFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKTEg7RUEzQkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUpvQ2QsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSk9IO0VFdUJFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKSkg7RUE1QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsOEJBRmlCO01BRWpCLDBCQUZpQjtVQUVqQixzQkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSlFIO0VFc0JFLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUN1QlYsV0FBOEIsRUhKL0I7O0FKSEg7RUE3QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsZ0NBRmlCO01BRWpCLDRCQUZpQjtVQUVqQix3QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSlNIO0VFcUJFLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUNzQlosV0FBOEIsRUhKL0I7O0FKRkg7RUE5QkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSlVIO0VFb0JFLHNESW5DZTtVSm1DZiw4Q0luQ2U7RUNxQmIsV0FBOEIsRUhKL0I7O0FKREg7RUEvQkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsK0JBRmlCO01BRWpCLDJCQUZpQjtVQUVqQix1QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSldIO0VFbUJFLHNESWxDYTtVSmtDYiw4Q0lsQ2E7RUNvQlgsV0FBOEIsRUhKL0I7O0FKQUg7RUFoQ0EsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSllIO0VFa0JFLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUN1QlYsV0FBOEIsRUhKL0I7O0FKQ0g7RUFqQ0EsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSmFIO0VFaUJFLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUNzQlosV0FBOEIsRUhKL0I7O0FKSUg7RUFwQ0EsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLDhCQUZpQjtNQUVqQiwwQkFGaUI7VUFFakIsc0JBRmlCO0VNM0JmLHdEQUF3QztFQUF4QyxnREFBd0M7RUFBeEMsd0NBQXdDO0VBQXhDLDJEQUF3QztFQUN4QyxXQUEyQixFSkY1Qjs7QUpnQkg7RUVjRSw0QkFGaUI7TUFFakIsd0JBRmlCO1VBRWpCLG9CQUZpQjtFTWhCZixXQUEyQixFSkE1Qjs7QUpLSDtFQXJDQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsOEJBRmlCO01BRWpCLDBCQUZpQjtVQUVqQixzQkFGaUI7RU0zQmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBQ3hDLFdBQTJCLEVKRjVCOztBSmlCSDtFRWFFLDRCQUZpQjtNQUVqQix3QkFGaUI7VUFFakIsb0JBRmlCO0VNaEJmLFdBQTJCLEVKQTVCOztBSk1IO0VBdENBLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYiw0QkFGaUI7TUFFakIsd0JBRmlCO1VBRWpCLG9CQUZpQjtFTTNCZix3REFB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QixnQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixnQkRoQnNCLEVOZ0dqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixzQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFlDZXNCLEVOMkVqQjtFQWdCRDtJTzlFSix1QkRic0IsRU42RmpCO0VBS0Q7SVF6R0YsWVZrR3VEO0lVakd2RCxZQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELFdBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlWa0VxRCxFVWpFdEQ7RVJ3RUM7SVF6R0YsWVZrR3VEO0lVakd2RCxpQkFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsYUFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUjhFRDtJRy9HQSxpQkFGa0I7SUFHbEIsZ0JBSGtCLEVIa0hnQjtFQURsQztJQUlJLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2hCO0VBR0g7SUFDRSxnQkFBZ0I7SUFDaEIsZUFBZSxFQUNoQjtFQUVEO0lHN0hBLHlCQUZrQjtJQUdsQix3QkFIa0IsRUhnSXlCO0VBSTNDO0lPaklBLG1CQUFtQjtJQUNuQixrQkFBa0IsRVBrSWpCO0lBRkQ7TU9wSUUsWUFBWTtNQUNaLFlBQVksRUFDYjtFUHVJRDs7O0lPNUhGLGlCQUFpQjtJQUNqQixZVHNGeUQ7SVNyRnpELGdCQUFnQjtJQUNoQixlQUFlLEVQMkhaLEVBQUE7O0FJSUM7RUo3REE7SUt4RkosZ0JDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixlQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixnQkRoQnNCLEVOZ0dqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixzQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFlDZXNCLEVOMkVqQjtFQWdCRDtJTzlFSix1QkRic0IsRU42RmpCO0VBS0Q7SVF6R0YsWVZrR3VEO0lVakd2RCxZQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELFdBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlWa0VxRCxFVWpFdEQ7RVJ3RUM7SVF6R0YsWVZrR3VEO0lVakd2RCxpQkFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsYUFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUjhFRDtJRy9HQSxpQkFGa0I7SUFHbEIsZ0JBSGtCLEVIa0hnQjtFQURsQztJQUlJLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2hCO0VBR0g7SUFDRSxnQkFBZ0I7SUFDaEIsZUFBZSxFQUNoQjtFQUVEO0lHN0hBLHdCQUZrQjtJQUdsQix1QkFIa0IsRUhnSXlCO0VBSTNDO0lPaklBLG1CQUFtQjtJQUNuQixrQkFBa0IsRVBrSWpCO0lBRkQ7TU9wSUUsWUFBWTtNQUNaLFlBQVksRUFDYjtFUHVJRDs7O0lPNUhGLGlCQUFpQjtJQUNqQixZVHNGeUQ7SVNyRnpELGdCQUFnQjtJQUNoQixlQUFlLEVQMkhaLEVBQUE7O0FJU0M7RUpsRUE7SUt4RkosZ0JDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixlQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixnQkRoQnNCLEVOZ0dqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixzQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFlDZXNCLEVOMkVqQjtFQWdCRDtJTzlFSix1QkRic0IsRU42RmpCO0VBS0Q7SVF6R0YsWVZrR3VEO0lVakd2RCxZQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELFdBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlWa0VxRCxFVWpFdEQ7RVJ3RUM7SVF6R0YsWVZrR3VEO0lVakd2RCxpQkFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7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RVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFlDZXNCLEVOMkVqQjtFQWdCRDtJTzlFSix1QkRic0IsRU42RmpCO0VBS0Q7SVF6R0YsWVZrR3VEO0lVakd2RCxZQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELFdBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlWa0VxRCxFVWpFdEQ7RVJ3RUM7SVF6R0YsWVZrR3VEO0lVakd2RCxpQkFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVZrRXFELEVVakV0RDtFUndFQztJUXpHRixZVmtHdUQ7SVVqR3ZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZVmtFcUQsRVVqRXREO0VSd0VDO0lRekdGLFlWa0d1RDtJVWpHdkQsYUFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlB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QWtCLEVBQ3JCLEVBQUE7O0FBR0w7RUFDSTtJQUdZLHlCQUF5QixFQUM1QixFQUFBOztBekV4RWI7Ozs7R0FJRztBQXdFSDtFQUNJLHNCQUFzQjtFQUN0QixvREFBcUI7RUFDckIsNkNBbkRZO1VBbURaLHFDQW5EWSxFQW9EZjs7QUFFRDtFQUNLLHdCQUFxQixFQUN6Qjs7QTBFaEhEO0VBRVEsa0JBQWtCLEUxRVVyQjs7QTBFTkw7RUFDSSxzQkFBc0IsRUFDekI7O0FBRUQ7RUFDSSw4QjFDUE87RTBDUVAsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixtQkFBbUIsRUFTdEI7RUFiRDtJQU9RLHFCQUFxQixFMUVMeEI7RTBFRkw7SUFXUSxpQkFBaUIsRTFFVHBCOztBMEVjTDtFQUVRLFVBQVUsRUFDYjs7QUFHTDtFQUVRLFVBQVU7RUFDViw2QkFBNkIsRTFFdkJoQztFMEVvQkw7SUFPWSxnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixrQkFBa0IsRUFhckI7SUF2QlQ7TUFhZ0IsaUMxQ3BDdUI7TTBDcUN2QixnQkFBZ0I7TUFDaEIsdUJBQXVCO01BQ3ZCLG1CQUFtQjtNQUNuQixrQkFBa0IsRUFLckI7TUF0QmI7UUFvQm9CLGNBQWMsRUFDakI7O0FBTWpCO0VBQ0ksc0JBQXNCLEVBQ3pCOztBQUVEO0VBR1ksaUJBQWlCLEVBQ3BCOztBQUlUO0VBQ0ksdUJBQXVCLEVBZ0IxQjtFQWpCRDtJQUlRLG1CQUFtQixFMUV4RXRCO0UwRW9FTDtJQVFRLHNCQUFzQixFMUU1RXpCO0UwRW9FTDtJQVlRLGUxQ2xGVztJMENtRlgsaUMxQzNFK0I7STBDNEUvQixrQkFBa0I7SUFDbEIsVUFBVSxFMUVuRmI7O0EwRXVGTDtFQUNJLHNCQUFzQixFQU96QjtFQVJEO0lBS1ksaUJBQWlCLEVBQ3BCIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjQuM1xuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8qKlxuICogU3ByaXRlIHNldHRpbmdzXG4gKi9cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNzsgfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTsgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG4uc3Bpbi1jdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNwaW4tY2N3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfSB9XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7IH1cblxuQGtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc2hha2UsXG4uc3Bpbi1jdyxcbi5zcGluLWNjdyxcbi53aWdnbGUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zOyB9XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbi5zbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG4vKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovIH1cblxuLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG4gIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovIH1cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqLyB9XG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAgICAgKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBTY3JpcHRpbmdcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTI2LjI1ZW0mbWVkaXVtPTQ4ZW0mdGFibGV0PTYwZW0mbGFyZ2U9NjQuMDYyNWVtJnhsYXJnZT03NWVtJnh4bGFyZ2U9OTBlbVwiOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogXCJmdXR1cmEtcHRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7IH1cbiAgLnJvdzo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNi4yNWVtKSB7XG4gICAgLnJvdyAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTAuMzEyNXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC4zMTI1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucm93IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5yb3cgLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLnJvdyAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfSB9XG4gIC5yb3cgLnJvdy5jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAgIC5yb3cuZXhwYW5kZWQgLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93Om5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMzEyNXJlbTsgfVxuICAucm93Lmd1dHRlci1tZWRpdW0gPiAuY29sdW1uLCAucm93Lmd1dHRlci1tZWRpdW0gPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjYuMjVlbSkge1xuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC4zMTI1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH0gfVxuICAuY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5jb2x1bW5zOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuY29sdW1uLmVuZDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQsIC5lbmQuY29sdW1uczpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5jb2x1bW4ucm93LnJvdywgLnJvdy5yb3cuY29sdW1ucyB7XG4gIGZsb2F0OiBub25lOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDI2LjI1ZW0pIHtcbiAgLnNtYWxsLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuc21hbGwtcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLnNtYWxsLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzJTsgfVxuICAuc21hbGwtb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtcHVzaC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC5zbWFsbC1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5zbWFsbC1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5zbWFsbC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5zbWFsbC1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLnNtYWxsLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLnNtYWxsLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5zbWFsbC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnNtYWxsLXB1bGwtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMy4zMzMzMyU7IH1cbiAgLnNtYWxsLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5zbWFsbC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5zbWFsbC1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnNtYWxsLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLnNtYWxsLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5zbWFsbC1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLnNtYWxsLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLnNtYWxsLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5zbWFsbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5zbWFsbC1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnNtYWxsLXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMyU7IH1cbiAgLnNtYWxsLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5zbWFsbC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5zbWFsbC1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnNtYWxsLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLnNtYWxsLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5zbWFsbC1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLnNtYWxsLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLnNtYWxsLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5zbWFsbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuc21hbGwtcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuc21hbGwtcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMyU7IH1cbiAgLnNtYWxsLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5zbWFsbC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuc21hbGwtcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAuc21hbGwtcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLnNtYWxsLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuc21hbGwtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5zbWFsbC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWFsbC11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAgIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnNtYWxsLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnNtYWxsLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5zbWFsbC1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMzEyNXJlbTsgfVxuICAuc21hbGwtY2VudGVyZWQge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIC5zbWFsbC1jZW50ZXJlZCwgLnNtYWxsLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdW5jZW50ZXJlZCxcbiAgLnNtYWxsLXB1c2gtMCxcbiAgLnNtYWxsLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbiwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubWVkaXVtLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIC5tZWRpdW0tY2VudGVyZWQge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIC5tZWRpdW0tY2VudGVyZWQsIC5tZWRpdW0tY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tZWRpdW0tdW5jZW50ZXJlZCxcbiAgLm1lZGl1bS1wdXNoLTAsXG4gIC5tZWRpdW0tcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLnRhYmxldC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLnRhYmxldC1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAudGFibGV0LXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzJTsgfVxuICAudGFibGV0LW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLnRhYmxldC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC50YWJsZXQtcHVzaC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC50YWJsZXQtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAudGFibGV0LW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLnRhYmxldC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC50YWJsZXQtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC50YWJsZXQtcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAudGFibGV0LW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC50YWJsZXQtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAudGFibGV0LXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAudGFibGV0LXB1bGwtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMy4zMzMzMyU7IH1cbiAgLnRhYmxldC1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAudGFibGV0LTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLnRhYmxldC1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnRhYmxldC1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC50YWJsZXQtb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnRhYmxldC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC50YWJsZXQtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC50YWJsZXQtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAudGFibGV0LW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC50YWJsZXQtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAudGFibGV0LXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAudGFibGV0LXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMyU7IH1cbiAgLnRhYmxldC1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAudGFibGV0LTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLnRhYmxldC1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnRhYmxldC1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC50YWJsZXQtb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnRhYmxldC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC50YWJsZXQtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC50YWJsZXQtcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAudGFibGV0LW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC50YWJsZXQtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLnRhYmxldC1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC50YWJsZXQtcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMyU7IH1cbiAgLnRhYmxldC1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAudGFibGV0LTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC50YWJsZXQtcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAudGFibGV0LXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC50YWJsZXQtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC50YWJsZXQtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC50YWJsZXQtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC50YWJsZXQtdXAtMSA+IC5jb2x1bW4sIC50YWJsZXQtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC50YWJsZXQtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAudGFibGV0LXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTIgPiAuY29sdW1uLCAudGFibGV0LXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC50YWJsZXQtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAudGFibGV0LXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTMgPiAuY29sdW1uLCAudGFibGV0LXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC50YWJsZXQtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAudGFibGV0LXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTQgPiAuY29sdW1uLCAudGFibGV0LXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAgIC50YWJsZXQtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAudGFibGV0LXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTUgPiAuY29sdW1uLCAudGFibGV0LXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC50YWJsZXQtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAudGFibGV0LXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTYgPiAuY29sdW1uLCAudGFibGV0LXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC50YWJsZXQtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAudGFibGV0LXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTcgPiAuY29sdW1uLCAudGFibGV0LXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC50YWJsZXQtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAudGFibGV0LXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAudGFibGV0LXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAudGFibGV0LXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC50YWJsZXQtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnRhYmxldC11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAudGFibGV0LXVwLTggPiAuY29sdW1uLCAudGFibGV0LXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLnRhYmxldC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC50YWJsZXQtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC50YWJsZXQtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC50YWJsZXQtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnRhYmxldC11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAudGFibGV0LXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC50YWJsZXQtY29sbGFwc2UgPiAuY29sdW1uLCAudGFibGV0LWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC50YWJsZXQtY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLnRhYmxldC1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAudGFibGV0LXVuY29sbGFwc2UgPiAuY29sdW1uLCAudGFibGV0LXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuICAudGFibGV0LWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAudGFibGV0LWNlbnRlcmVkLCAudGFibGV0LWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAudGFibGV0LXVuY2VudGVyZWQsXG4gIC50YWJsZXQtcHVzaC0wLFxuICAudGFibGV0LXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5sYXJnZS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5sYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5sYXJnZS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIC5sYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLmxhcmdlLWNlbnRlcmVkLCAubGFyZ2UtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5sYXJnZS11bmNlbnRlcmVkLFxuICAubGFyZ2UtcHVzaC0wLFxuICAubGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNi4yNWVtKSB7XG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG4gICAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gICAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAuYWNjb3JkaW9uW2Rpc2FibGVkXSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGZvcmVncm91bmQoI2ZlZmVmZSwgIzAwODI4Myk7IH1cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgY29udGVudDogJysnOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTMnOyB9XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGNvbG9yOiBmb3JlZ3JvdW5kKCNmZWZlZmUsICMwYTBhMGEpOyB9XG4gIDpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50Omxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OyB9XG5cbi5vcmJpdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ub3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ub3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTsgfVxuICAub3JiaXQtc2xpZGUubm8tbW90aW9udWkuaXMtYWN0aXZlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ub3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4ub3JiaXQtcHJldmlvdXMsIC5vcmJpdC1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1wcmV2aW91cywgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1uZXh0IHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1wcmV2aW91czpob3ZlciwgLm9yYml0LW5leHQ6aG92ZXIsIC5vcmJpdC1wcmV2aW91czphY3RpdmUsIC5vcmJpdC1uZXh0OmFjdGl2ZSwgLm9yYml0LXByZXZpb3VzOmZvY3VzLCAub3JiaXQtbmV4dDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpOyB9XG5cbi5vcmJpdC1wcmV2aW91cyB7XG4gIGxlZnQ6IDA7IH1cblxuLm9yYml0LW5leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LWJ1bGxldHMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LWJ1bGxldHMgYnV0dG9uIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIG1hcmdpbjogMC4xcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cblxuLmhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAjOGE4YThhO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDAuNDMzcmVtKTtcbiAgei1pbmRleDogMTIwMDtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAudG9vbHRpcC5ib3R0b206OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDA4MjgzO1xuICAgIGJvdHRvbTogMTAwJTsgfVxuICAudG9vbHRpcC5ib3R0b20uYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAudG9wOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzAwODI4MyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvOyB9XG4gIC50b29sdGlwLnRvcC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwODI4MztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC50b29sdGlwLmxlZnQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDA4MjgzIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLnRvb2x0aXAucmlnaHQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTsgfVxuICAudG9vbHRpcC5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDI2LjI1ZW0pIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI2LjE4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5oaWRlLWZvci10YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAuc2hvdy1mb3ItdGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuICAuaGlkZS1mb3ItdGFibGV0LW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5zaG93LWZvci10YWJsZXQtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lOyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5jbGVhcmZpeDo6YmVmb3JlLCAuY2xlYXJmaXg6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJzsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG5ib2R5IHtcbiAgcGFkZGluZy10b3A6IDcuMzc1cmVtOyB9XG4gIGJvZHkub3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbmgxLFxuLmhlYWRpbmctMSB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjVlbTsgfVxuXG5oMixcbi5oZWFkaW5nLTIge1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAuMDE2ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1ZW07IH1cblxuaDMsXG4uaGVhZGluZy0zIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAuMDE2ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1ZW07IH1cblxuaDQsXG4uaGVhZGluZy00IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogLjAxNmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG4uaGVhZGluZy0xLFxuLmhlYWRpbmctMixcbi5oZWFkaW5nLTMsXG4uaGVhZGluZy00IHtcbiAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgaDEgYSxcbiAgaDIgYSxcbiAgaDMgYSxcbiAgaDQgYSxcbiAgLmhlYWRpbmctMSBhLFxuICAuaGVhZGluZy0yIGEsXG4gIC5oZWFkaW5nLTMgYSxcbiAgLmhlYWRpbmctNCBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5wIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuYSB7XG4gIGNvbG9yOiAjMDA4MjgzO1xuICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXM7IH1cbiAgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwNzJlNDM7IH1cblxuLnRvb2x0aXAge1xuICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1heC13aWR0aDogMTQuMjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucm93LS1wYWRkaW5nLWJpZyB7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07IH1cblxuLmZhY2Vib29rLWNvbG9yIHtcbiAgY29sb3I6ICMzYjU5OTg7IH1cblxuLmxpbmtlZGluLWNvbG9yIHtcbiAgY29sb3I6ICMwMDdiYjU7IH1cblxuLnR3aXR0ZXItY29sb3Ige1xuICBjb2xvcjogIzU1YWNlZTsgfVxuXG4ubG9naW4tbW9kYWwtb3BlbmVkIG1haW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc4LjI1cmVtKSB7XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogNzVyZW07IH1cbiAgLnJvdy0tcGFkZGluZy1iaWcge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5zZWN0aW9uLXBhZGRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogMi4yNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTkuOTM3NXJlbSkge1xuICBib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogNC41cmVtOyB9IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICBib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTsgfVxuICBoMSxcbiAgLmhlYWRpbmctMSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07IH1cbiAgaDMsXG4gIC5oZWFkaW5nLTMge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07IH1cbiAgLnNlY3Rpb24tcGFkZGluZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5zbGljay1zbGlkZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uc2xpY2stbGlzdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAuMzEyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4uc2xpY2stYXJyb3cge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7IH1cbiAgLnNsaWNrLWFycm93LnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IC0ycmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnNsaWNrLWFycm93LnNsaWNrLXByZXYge1xuICAgICAgICBsZWZ0OiAtMy4xMjVyZW07IH0gfVxuICAuc2xpY2stYXJyb3cuc2xpY2stbmV4dCB7XG4gICAgcmlnaHQ6IC0ycmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnNsaWNrLWFycm93LnNsaWNrLW5leHQge1xuICAgICAgICByaWdodDogLTMuMTI1cmVtOyB9IH1cbiAgLnNsaWNrLWFycm93LnNsaWNrLWRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogLjM7IH1cblxuLmdyaWQtaGVscGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5ncmlkLWhlbHBlcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5ncmlkLWhlbHBlcl9faW5uZXI6OmJlZm9yZSwgLmdyaWQtaGVscGVyX19pbm5lcjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjb250ZW50OiAnICc7IH1cbiAgICAuZ3JpZC1oZWxwZXJfX2lubmVyOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuZ3JpZC1oZWxwZXJfX2NvbCB7XG4gICAgd2lkdGg6IDguMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNi4yNWVtKSB7XG4gICAgICAuZ3JpZC1oZWxwZXJfX2NvbCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjMxMjVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZ3JpZC1oZWxwZXJfX2NvbCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9IH1cbiAgICAuZ3JpZC1oZWxwZXJfX2NvbDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5ncmlkLWhlbHBlcl9fY29sIHAge1xuICAgICAgYmFja2dyb3VuZDogIzAwZjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG9wYWNpdHk6IC40O1xuICAgICAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5idXR0b24ge1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMS41ZW07XG4gIGNvbG9yOiAjMDA4MjgzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogLjA2ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMxMjVlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogLjc1ZW0gMi41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zLCBiYWNrZ3JvdW5kIDI1MG1zLCBib3JkZXItY29sb3IgMjUwbXM7IH1cbiAgLmJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uX19pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTsgfVxuICAuYnV0dG9uX190ZXh0IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCB2aXNpYmlsaXR5IDIwMG1zOyB9XG4gICAgLmJ1dHRvbl9fdGV4dC0tYWN0aW9uLXRleHQge1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwYWRkaW5nOiBpbmhlcml0O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmJ1dHRvbi0tZmlsbGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDA4MjgzO1xuICAgIGJvcmRlci1jb2xvcjogIzAwODI4MztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idXR0b24tLWZpbGxlZDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDE1ZjVmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMDE1ZjVmO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi0tYmlnIHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLmJ1dHRvbi0tZnVsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmJ1dHRvbi5hY3Rpb24taGFwcGVuZCAuYnV0dG9uX190ZXh0LS1kZWZhdWx0LXRleHQge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5idXR0b24uYWN0aW9uLWhhcHBlbmQgLmJ1dHRvbl9fdGV4dC0tYWN0aW9uLXRleHQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NXJlbSkge1xuICAuYnV0dG9uX190ZXh0IC5oaWRlLXJ3ZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnRleHQtYnV0dG9uIHtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIG1hcmdpbi10b3A6IC40Mzc1cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnRleHQtYnV0dG9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnXFxmMTA1JztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtIEZvbnRBd2Vzb21lO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXRvcDogLS4yNWVtO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgZWFzZS1vdXQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAudGV4dC1idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJyZW0pO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbiwgdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW47IH1cbiAgLnRleHQtYnV0dG9uLS13aGl0ZSB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4ubGFuZ3VhZ2Utc3dpdGNoZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBkaXJlY3Rpb246IGx0cjtcbiAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZXR0ZXItc3BhY2luZzogLjAyNWVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgbWluLXdpZHRoOiA1LjI1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaGVyX19wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIC44MTI1cmVtO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjUwbXM7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaGVyX19mbGFnIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMmVtOyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hlcl9fbmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAubGFuZ3VhZ2Utc3dpdGNoZXJfX25hbWU6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcZjEwNyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxcmVtIEZvbnRBd2Vzb21lO1xuICAgICAgbWFyZ2luLWxlZnQ6IC4zNzVlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0uMjVyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgYmFja2dyb3VuZDogI2YwZjVmOTtcbiAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMzEyNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyLjg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zLCB2aXNpYmlsaXR5IDI1MG1zO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFuZ3VhZ2Utc3dpdGNoZXJfX2xpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaGVyX19saXN0LWxpbmsge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IC4zNzVyZW0gMS4zMTI1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zOyB9XG4gICAgLmxhbmd1YWdlLXN3aXRjaGVyX19saXN0LWxpbms6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgfVxuICAubGFuZ3VhZ2Utc3dpdGNoZXI6aG92ZXIgLnBsYWNlaG9sZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzOyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hlcjpob3ZlciAubGlzdCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnNpdGUtc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IDEuODc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNpdGUtc2VhcmNoX19maWVsZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAjNzM4Njg0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogLjE4NzVyZW0gMS44NzVyZW0gLjE4NzVyZW0gLjYyNXJlbTtcbiAgICB3aWR0aDogMTEuMjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMWVtOyB9XG4gIC5zaXRlLXNlYXJjaF9fYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLjEyNXJlbTtcbiAgICB0b3A6IC4xMjVyZW07XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcztcbiAgICB3aWR0aDogMS4yNXJlbTsgfVxuICAgIC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMC42ODc1ZW07XG4gICAgICBoZWlnaHQ6IDAuNjg3NWVtO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTAuMzEyNWVtIC00Ny42MjVlbTsgfVxuICAgICAgLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01IC03NjJweDsgfVxuICAgIC5zaXRlLXNlYXJjaF9fYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTVmNWY7IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uc29jaWFsLW5hdiB7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuICAuc29jaWFsLW5hdl9fZWxlbWVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAuNXJlbTsgfVxuICAgIC5zb2NpYWwtbmF2X19lbGVtZW50OmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLnNvY2lhbC1uYXZfX2VsZW1lbnQ6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnNvY2lhbC1uYXZfX2xpbmsge1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zOyB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnRvcC1iYXIge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLnRvcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC50b3AtYmFyX19zZWFyY2gtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDcyZTQzO1xuICAgIGhlaWdodDogMi44NzVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICAudG9wLWJhcl9fc2VhcmNoLWJhciAubGFuZ3VhZ2Utc3dpdGNoZXIsXG4gICAgLnRvcC1iYXJfX3NlYXJjaC1iYXIgLnNpdGUtc2VhcmNoLFxuICAgIC50b3AtYmFyX19zZWFyY2gtYmFyIC5sb2dpbi1idXR0b24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgLnRvcC1iYXJfX3NlYXJjaC1iYXIgLnNpdGUtc2VhcmNoIHtcbiAgICAgIG1hcmdpbi10b3A6IC42ODc1cmVtOyB9XG4gIC50b3AtYmFyX19uYXYtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4zMTI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGhlaWdodDogNC41cmVtOyB9XG4gICAgLnRvcC1iYXJfX25hdi1iYXItLW5vLXNoYWRvdyB7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC50b3AtYmFyX19uYXYtYmFyLXNvY2lhbC13cmFwcGVyIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC50b3AtYmFyX19uYXYtYmFyLXNvY2lhbC13cmFwcGVyIC5zb2NpYWwtbmF2IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgICAgIC50b3AtYmFyX19uYXYtYmFyLXNvY2lhbC13cmFwcGVyIC5zb2NpYWwtbmF2X19saW5rIHtcbiAgICAgICAgY29sb3I6ICMwMDgyODM7IH1cbiAgICAgICAgLnRvcC1iYXJfX25hdi1iYXItc29jaWFsLXdyYXBwZXIgLnNvY2lhbC1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjMDE1ZjVmOyB9XG4gIC50b3AtYmFyX19uYXYtYmFyLXNvY2lhbC10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAudG9wLWJhcl9fbG9nby1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogLjc1cmVtIDA7IH1cbiAgLnRvcC1iYXJfX2xvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudG9wLWJhcl9fbmF2LWJhci1tZW51LXdyYXBwZXIge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAudG9wLWJhcl9fbmF2LWJhci1tZW51LXdyYXBwZXItc2Nyb2xsIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAudG9wLWJhcl9fbW9iaWxlLWRyb3Bkb3duLXRvcCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAudG9wLWJhcl9fbW9iaWxlLWJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzOyB9XG4gIC50b3AtYmFyX19tb2JpbGUtYnV0dG9uIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgY29sb3I6ICMwMDgyODM7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiA0LjVyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB3aWR0aDogNC41cmVtOyB9XG4gICAgLnRvcC1iYXJfX21vYmlsZS1idXR0b24udG9nZ2xlLW1lbnUtYnRuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLnRvcC1iYXJfX21vYmlsZS1idXR0b24udG9nZ2xlLW1lbnUtYnRuIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDA4MjgzO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDUwMG1zO1xuICAgICAgICB3aWR0aDogNDIlOyB9XG4gICAgICAgIC50b3AtYmFyX19tb2JpbGUtYnV0dG9uLnRvZ2dsZS1tZW51LWJ0biBzcGFuOmJlZm9yZSwgLnRvcC1iYXJfX21vYmlsZS1idXR0b24udG9nZ2xlLW1lbnUtYnRuIHNwYW46YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zLCB0b3AgNTAwbXMsIGJvdHRvbSA1MDBtcywgYmFja2dyb3VuZCA1MDBtcztcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAudG9wLWJhcl9fbW9iaWxlLWJ1dHRvbi50b2dnbGUtbWVudS1idG4gc3BhbjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogLTIzMy4zMyU7IH1cbiAgICAgICAgLnRvcC1iYXJfX21vYmlsZS1idXR0b24udG9nZ2xlLW1lbnUtYnRuIHNwYW46YWZ0ZXIge1xuICAgICAgICAgIGJvdHRvbTogLTIzMy4zMyU7IH1cbiAgICAgIC50b3AtYmFyX19tb2JpbGUtYnV0dG9uLnRvZ2dsZS1tZW51LWJ0bi5vcGVuZWQgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgIC50b3AtYmFyX19tb2JpbGUtYnV0dG9uLnRvZ2dsZS1tZW51LWJ0bi5vcGVuZWQgc3BhbjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgICAgICAgLnRvcC1iYXJfX21vYmlsZS1idXR0b24udG9nZ2xlLW1lbnUtYnRuLm9wZW5lZCBzcGFuOmFmdGVyIHtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAudG9wLWJhcl9fbmF2LWxpc3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbS5kcm9wZG93biA+IGEge1xuICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0uZHJvcGRvd24gPiBhOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICAgICAgICBib3R0b206IC0uMzEyNXJlbTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IC4zMTI1cmVtO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcywgdmlzaWJpbGl0eSAxNTBtcztcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbS5kcm9wZG93biA+IGEgLmRyb3Bkb3duLWljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gICAgICAudG9wLWJhcl9fbmF2LWxpc3QgPiAubWVudS1pdGVtLmRyb3Bkb3duOmhvdmVyID4gYSB7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zIDEwMG1zLCBiYWNrZ3JvdW5kIDI1MG1zIDEwMG1zOyB9XG4gICAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0uZHJvcGRvd246aG92ZXIgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIDIwMG1zLCB2aXNpYmlsaXR5IDE1MG1zIDIwMG1zO1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW06aG92ZXIgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwODI4MztcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbTpob3ZlciA+IGE6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW06aG92ZXIgLm1lbnUtZHJvcGRvd24ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zIDUwbXMsIHZpc2liaWxpdHkgMjUwbXMgNTBtcztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgICAgICBjb2xvcjogIzA3MmU0MztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDYyNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogNC41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDEuMjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMsIGJhY2tncm91bmQgMjUwbXM7XG4gICAgICAgIHotaW5kZXg6IDI7IH1cblxuLmxvZ2luLWJ1dHRvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZXR0ZXItc3BhY2luZzogLjAyNWVtO1xuICBsaW5lLWhlaWdodDogMi44NzVyZW07XG4gIHBhZGRpbmc6IDAgLjgxMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtczsgfVxuICAubG9naW4tYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5sb2dpbi1idXR0b25fX3RleHQtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS1kcm9wZG93biB7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRvcDogNy4zNzVyZW07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMsIHZpc2liaWxpdHkgMjUwbXM7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lbnUtZHJvcGRvd246YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICBib3gtc2hhZG93OiAwIDJweCAyNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWVudS1kcm9wZG93bl9faW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICAubWVudS1kcm9wZG93bl9faW5uZXI6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4zMTI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZW51LWRyb3Bkb3duX19uYXYtY29sdW1uIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGM5Njk3O1xuICAgIHdpZHRoOiAxNy41cmVtOyB9XG4gIC5tZW51LWRyb3Bkb3duX19uYXYtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAxLjg3NXJlbSAwOyB9XG4gIC5tZW51LWRyb3Bkb3duX19uYXYtbGlzdC1lbGVtZW50IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWVudS1kcm9wZG93bl9fbmF2LWxpc3QtZWxlbWVudC1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBwYWRkaW5nOiAuNjg3NXJlbSA0cmVtIC44MTI1cmVtIDIuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLm1lbnUtZHJvcGRvd25fX25hdi1saXN0LWVsZW1lbnQtbGluay0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7IH1cbiAgICAubWVudS1kcm9wZG93bl9fbmF2LWxpc3QtZWxlbWVudC1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLm1lbnUtZHJvcGRvd25fX25hdi1saXN0LWVsZW1lbnQtbGluazphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFxmMTA1JztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTZweC8xIEZvbnRBd2Vzb21lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDJyZW07XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAubWVudS1kcm9wZG93bl9fY29udGVudC1jb2x1bW4ge1xuICAgIG1heC13aWR0aDogNjByZW07XG4gICAgcGFkZGluZzogMi4zNzVyZW0gMS44NzVyZW0gMy4xMjVyZW07XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE3LjVyZW0pOyB9XG4gIC5tZW51LWRyb3Bkb3duX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm1lbnUtZHJvcGRvd25fX2NvbnRlbnQtLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWVudS1kcm9wZG93bl9fY29udGVudC10b3Age1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMGM5Njk3O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAwIC43NXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjYyNXJlbTsgfVxuICAgIC5tZW51LWRyb3Bkb3duX19jb250ZW50LXRvcC0tdG9vbHMge1xuICAgICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAubWVudS1kcm9wZG93bl9fY29udGVudC1uZXdzLXBvcHVsYXIge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjI1cmVtOyB9XG4gIC5tZW51LWRyb3Bkb3duX190b29scy1yb3cge1xuICAgIHBhZGRpbmctYm90dG9tOiA2cmVtO1xuICAgIHBhZGRpbmctdG9wOiAyLjM3NXJlbTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZW51LWRyb3Bkb3duX190b29scy1yb3cgLnJlc291cmNlLXRpbGVfX2NhdGVnb3J5LWxhYmVsIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogIzAwODI4MzsgfVxuICAgIC5tZW51LWRyb3Bkb3duX190b29scy1yb3cgLnJlc291cmNlLXRpbGVfX3RpdGxlLWxpbmsge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5tZW51LWRyb3Bkb3duX190b29scy1yb3cgLnJlc291cmNlLXRpbGVfX3RpdGxlLWxpbms6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAgIC5tZW51LWRyb3Bkb3duX190b29scy1yb3cgLnJlc291cmNlLXRpbGVfX2Rlc2Mge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtcm93IC5yZXNvdXJjZS10aWxlX19saW5rIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtcm93IC5yZXNvdXJjZS10aWxlX19saW5rOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMwNzJlNDM7IH1cbiAgLm1lbnUtZHJvcGRvd25fX3Rvb2xzLXN1Yi1tZW51LWNvbHVtbiB7XG4gICAgbWFyZ2luLXRvcDogMi4xMjVyZW07IH1cbiAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtc3ViLW1lbnUtY29sdW1uIC5zdWItbWVudSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzBjOTY5NztcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtc3ViLW1lbnUtY29sdW1uIC5zdWItbWVudSBsaSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMGM5Njk3O1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtc3ViLW1lbnUtY29sdW1uIC5zdWItbWVudSBsaSBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICBwYWRkaW5nOiAuODEyNXJlbSAxcmVtIC42MjVyZW0gMDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgICAgLm1lbnUtZHJvcGRvd25fX3Rvb2xzLXN1Yi1tZW51LWNvbHVtbiAuc3ViLW1lbnUgbGkgYTphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTA1JztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtIEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5tZW51LWRyb3Bkb3duX190b29scy1zdWItbWVudS1jb2x1bW4tLWFib3V0IC5zdWItbWVudSBsaSBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IC44NzVyZW0gMXJlbSAuNjg3NXJlbSAwOyB9XG5cbi5kcm9wZG93bi10b29scyAubWVudS1kcm9wZG93bl9faW5uZXIge1xuICBtaW4taGVpZ2h0OiA0NTBweDsgfVxuXG4ucm93LmV4cGFuZGVkIC5tZW51LWRyb3Bkb3duX19jb250ZW50LW5ld3Mtcm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0uNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0uNjI1cmVtOyB9XG5cbi5yb3cuZXhwYW5kZWQgLm1lbnUtZHJvcGRvd25fX3BvcHVsYXItdG9vbHMtcm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0uNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0uNjI1cmVtOyB9XG5cbi5tZW51LXRpbGUge1xuICBjb2xvcjogI2ZmZjsgfVxuICAubWVudS10aWxlX19waG90by13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5tZW51LXRpbGVfX3Bob3RvLXdyYXBwZXIgaW1nIHtcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLWluOyB9XG4gIC5tZW51LXRpbGVfX3RpdGxlIHtcbiAgICBtYXJnaW46IC40Mzc1cmVtIDAgLjMxMjVyZW07IH1cbiAgLm1lbnUtdGlsZV9fdGl0bGUtbGluayB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5tZW51LXRpbGVfX2RhdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICBtYXJnaW46IDAgMCAuMzc1cmVtOyB9XG4gIC5tZW51LXRpbGVfX2V4Y2VycHQge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5tZW51LXRpbGU6aG92ZXIgLm1lbnUtdGlsZV9fcGhvdG8td3JhcHBlciBpbWcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi5tZW51LWRyb3Bkb3duLXBvcHVsYXIge1xuICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgLm1lbnUtZHJvcGRvd24tcG9wdWxhcl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIC4yNXJlbTsgfVxuICAubWVudS1kcm9wZG93bi1wb3B1bGFyX190aXRsZS1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLm1lbnUtZHJvcGRvd24tcG9wdWxhcl9fZXhjZXJwdCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5hZG1pbi1iYXIgLnRvcC1iYXIsXG4uYWRtaW4tYmFyIC5tZW51LWRyb3Bkb3duIHtcbiAgbWFyZ2luLXRvcDogMzJweDsgfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NXJlbSkge1xuICAudG9wLWJhcl9fbmF2LWJhci1zb2NpYWwtd3JhcHBlciAuc29jaWFsLW5hdl9fZWxlbWVudCB7XG4gICAgbWFyZ2luOiAwIC4yNXJlbTsgfVxuICAgIC50b3AtYmFyX19uYXYtYmFyLXNvY2lhbC13cmFwcGVyIC5zb2NpYWwtbmF2X19lbGVtZW50OmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLnRvcC1iYXJfX25hdi1iYXItc29jaWFsLXdyYXBwZXIgLnNvY2lhbC1uYXZfX2VsZW1lbnQ6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIC42MjVyZW07IH1cbiAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbS5kcm9wZG93biA+IGEgLmRyb3Bkb3duLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTsgfSB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVyZW0pIHtcbiAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgIGZvbnQtc2l6ZTogLjgxMjVyZW07XG4gICAgcGFkZGluZzogMCAuNXJlbTsgfVxuICAudG9wLWJhcl9fbmF2LWxpc3QgPiAubWVudS1pdGVtLmRyb3Bkb3duID4gYSAuZHJvcGRvd24taWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IC4zNzVyZW07IH0gfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1cmVtKSB7XG4gIC50b3AtYmFyX19zZWFyY2gtYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC50b3AtYmFyX19uYXYtYmFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudG9wLWJhcl9fbmF2LWJhcjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiAyOyB9XG4gIC50b3AtYmFyX19sb2dvLWxpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzOyB9XG4gIC50b3AtYmFyX19tb2JpbGUtYnV0dG9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMi4yNXJlbTsgfVxuICAudG9wLWJhcl9fbmF2LWJhci1tZW51LXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQ6ICMwNzJlNDM7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwYWRkaW5nOiA3LjVyZW0gMCA2cmVtO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMsIG9wYWNpdHkgNTAwbXMsIHZpc2liaWxpdHkgNTAwbXM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAudG9wLWJhcl9fbmF2LWJhci1tZW51LXdyYXBwZXIub3BlbmVkIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC50b3AtYmFyX19uYXYtYmFyLW1lbnUtd3JhcHBlci1zY3JvbGwge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgLnRvcC1iYXJfX25hdi1saXN0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAudG9wLWJhcl9fbmF2LWxpc3QgPiAubWVudS1pdGVtIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMSk7XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbSA+IGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMi4yNXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbSA+IGE6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0uZHJvcGRvd24gPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0uZHJvcGRvd24gPiBhOmJlZm9yZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAudG9wLWJhcl9fbmF2LWxpc3QgPiAubWVudS1pdGVtLmRyb3Bkb3duID4gYSAuZHJvcGRvd24taWNvbiB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMSk7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAzZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDNlbTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMzAwbXMsIGJhY2tncm91bmQgMzAwbXM7XG4gICAgICAgICAgd2lkdGg6IDNlbTsgfVxuICAgICAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0uZHJvcGRvd24gPiBhIC5kcm9wZG93bi1pY29uOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zOyB9XG4gICAgICAgICAgLnRvcC1iYXJfX25hdi1saXN0ID4gLm1lbnUtaXRlbS5kcm9wZG93biA+IGEgLmRyb3Bkb3duLWljb24udG9nZ2xlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA4MjgzO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDgyODM7IH1cbiAgICAgICAgICAgIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0uZHJvcGRvd24gPiBhIC5kcm9wZG93bi1pY29uLnRvZ2dsZWQ6YmVmb3JlIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAudG9wLWJhcl9fbmF2LWJhci1zb2NpYWwtd3JhcHBlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnRvcC1iYXJfX25hdi1iYXItc29jaWFsLXdyYXBwZXIgLnNvY2lhbC1uYXYge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC4xKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC50b3AtYmFyX19uYXYtYmFyLXNvY2lhbC13cmFwcGVyIC5zb2NpYWwtbmF2X19lbGVtZW50IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjEpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgLnRvcC1iYXJfX25hdi1iYXItc29jaWFsLXdyYXBwZXIgLnNvY2lhbC1uYXZfX2VsZW1lbnQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gICAgICAudG9wLWJhcl9fbmF2LWJhci1zb2NpYWwtd3JhcHBlciAuc29jaWFsLW5hdl9fbGluayB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRvcC1iYXJfX25hdi1iYXItc29jaWFsLXRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IC41NjI1cmVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnRvcC1iYXJfX21vYmlsZS1kcm9wZG93bi10b3Age1xuICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNC41cmVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnRvcC1iYXJfX21vYmlsZS1kcm9wZG93bi10b3AgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAudG9wLWJhcl9fbW9iaWxlLWRyb3Bkb3duLXRvcCA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDcsIDQ2LCA2OCwgMC4yKTsgfVxuICAgIC50b3AtYmFyX19tb2JpbGUtZHJvcGRvd24tdG9wIC5sYW5ndWFnZS1zd2l0Y2hlciB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBoZWlnaHQ6IDNyZW07IH1cbiAgICAgIC50b3AtYmFyX19tb2JpbGUtZHJvcGRvd24tdG9wIC5sYW5ndWFnZS1zd2l0Y2hlcl9fbmFtZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAgIC50b3AtYmFyX19tb2JpbGUtZHJvcGRvd24tdG9wIC5sYW5ndWFnZS1zd2l0Y2hlcl9fZmxhZyB7XG4gICAgICAgIGhlaWdodDogLjc1ZW07XG4gICAgICAgIHdpZHRoOiAxLjVlbTsgfVxuICAgICAgLnRvcC1iYXJfX21vYmlsZS1kcm9wZG93bi10b3AgLmxhbmd1YWdlLXN3aXRjaGVyX19wbGFjaG9sZGVyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07IH1cbiAgICAgIC50b3AtYmFyX19tb2JpbGUtZHJvcGRvd24tdG9wIC5sYW5ndWFnZS1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgICAgIHRvcDogM3JlbTsgfVxuICAudG9wLWJhcl9fbW9iaWxlLWxvZ2luIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zLCBjb2xvciAyMDBtczsgfVxuICAgIC50b3AtYmFyX19tb2JpbGUtbG9naW46aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAxNWY1ZjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5tZW51LWRyb3Bkb3duIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHRvcDogYXV0bztcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAubWVudS1kcm9wZG93bjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm1lbnUtZHJvcGRvd25fX2lubmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAubWVudS1kcm9wZG93bl9faW5uZXI6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZW51LWRyb3Bkb3duX19uYXYtY29sdW1uIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZW51LWRyb3Bkb3duX19uYXYtbGlzdCB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLm1lbnUtZHJvcGRvd25fX25hdi1saXN0LWVsZW1lbnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC4xKTsgfVxuICAgICAgLm1lbnUtZHJvcGRvd25fX25hdi1saXN0LWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAubWVudS1kcm9wZG93bl9fbmF2LWxpc3QtZWxlbWVudC1saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBwYWRkaW5nOiAuNzVyZW0gMi4yNXJlbTsgfVxuICAgICAgLm1lbnUtZHJvcGRvd25fX25hdi1saXN0LWVsZW1lbnQtbGluazphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubWVudS1kcm9wZG93bl9fY29udGVudC1jb2x1bW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZW51LWRyb3Bkb3duX190b29scy1yb3cge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5tZW51LWRyb3Bkb3duX190b29scy1wb3B1bGFyLWNvbHVtbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm1lbnUtZHJvcGRvd25fX3Rvb2xzLXN1Yi1tZW51LWNvbHVtbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtc3ViLW1lbnUtY29sdW1uIC5zdWItbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cbiAgICAgICAgLm1lbnUtZHJvcGRvd25fX3Rvb2xzLXN1Yi1tZW51LWNvbHVtbiAuc3ViLW1lbnUgbGkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMSk7IH1cbiAgICAgICAgICAubWVudS1kcm9wZG93bl9fdG9vbHMtc3ViLW1lbnUtY29sdW1uIC5zdWItbWVudSBsaSBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMi4yNXJlbTsgfVxuICAgICAgICAgICAgLm1lbnUtZHJvcGRvd25fX3Rvb2xzLXN1Yi1tZW51LWNvbHVtbiAuc3ViLW1lbnUgbGkgYTphZnRlciB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRyb3Bkb3duLXRvb2xzIC5tZW51LWRyb3Bkb3duX19pbm5lciB7XG4gICAgbWluLWhlaWdodDogMDsgfSB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLnRvcC1iYXJfX25hdi1iYXIge1xuICAgIGhlaWdodDogM2VtOyB9XG4gIC50b3AtYmFyX19uYXYtYmFyLW1lbnUtd3JhcHBlciB7XG4gICAgcGFkZGluZzogNnJlbSAwOyB9XG4gIC50b3AtYmFyX19tb2JpbGUtYnV0dG9ucyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtLjkzNzVyZW07IH1cbiAgLnRvcC1iYXJfX21vYmlsZS1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IDNyZW07IH1cbiAgICAudG9wLWJhcl9fbW9iaWxlLWJ1dHRvbi50b2dnbGUtbWVudS1idG4gc3BhbiB7XG4gICAgICBoZWlnaHQ6IDJweDsgfVxuICAudG9wLWJhcl9fbW9iaWxlLWRyb3Bkb3duLXRvcCB7XG4gICAgdG9wOiAzcmVtOyB9XG4gIC50b3AtYmFyX19uYXYtbGlzdCA+IC5tZW51LWl0ZW0gPiBhIHtcbiAgICBwYWRkaW5nOiAwIDFyZW07IH1cbiAgLm1lbnUtZHJvcGRvd25fX25hdi1saXN0LWVsZW1lbnQtbGluayB7XG4gICAgcGFkZGluZzogLjc1cmVtIDFyZW07IH1cbiAgLm1lbnUtZHJvcGRvd25fX3Rvb2xzLXN1Yi1tZW51LWNvbHVtbiAuc3ViLW1lbnUgbGkgYSB7XG4gICAgcGFkZGluZzogLjc1cmVtIDFyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMwNzJlNDM7XG4gIHBhZGRpbmctYm90dG9tOiAxLjYyNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNjI1cmVtOyB9XG4gIC5zaXRlLWZvb3Rlcl9fbmF2LXJvdyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTsgfVxuICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICBsaW5lLWhlaWdodDogLjg3NXJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAtLjYyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0uNjI1cmVtO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IC5tZW51LWl0ZW0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA2LjI1cmVtOyB9XG4gICAgICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IC5tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IC5tZW51LWl0ZW0gPiBhOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnXFxmMTA1JztcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMjVlbTtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207IH1cbiAgICAgICAgLnNpdGUtZm9vdGVyX19uYXYtbGlzdCAubWVudS1pdGVtID4gYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMwMDgyODM7IH1cbiAgLnNpdGUtZm9vdGVyX19sb2dvdHlwZXMtdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuc2l0ZS1mb290ZXJfX2xvZ290eXBlcy10aXRsZSB7XG4gICAgICAgIHdpZHRoOiAxMi43NXJlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnNpdGUtZm9vdGVyX19sb2dvdHlwZXMtdGl0bGUge1xuICAgICAgICB3aWR0aDogMTVyZW07IH0gfVxuICAuc2l0ZS1mb290ZXJfX2xvZ290eXBlcy1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMCAycmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDguNzVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAuc2l0ZS1mb290ZXJfX2xvZ290eXBlcy1saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwIDMuMTI1cmVtOyB9IH1cbiAgLnNpdGUtZm9vdGVyX19sb2dvdHlwZXMtbGlzdC1lbGVtZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuc2l0ZS1mb290ZXJfX2xvZ290eXBlcy1saXN0LXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNpdGUtZm9vdGVyX19sb2dvdHlwZXMtbGlzdC10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLnNpdGUtZm9vdGVyX19sb2dvdHlwZXMtbGlzdC1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDYuMjVyZW07IH1cbiAgLnNpdGUtZm9vdGVyX19zb2NpYWwtY29sdW1uIC5zb2NpYWwtbmF2IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMS42MjVyZW07XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnNpdGUtZm9vdGVyX19zb2NpYWwtY29sdW1uIC5zb2NpYWwtbmF2X19saW5rIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuc2l0ZS1mb290ZXJfX3NvY2lhbC1jb2x1bW4gLnNvY2lhbC1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzAwODI4MzsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5zaXRlLWZvb3Rlcl9fc29jaWFsLWNvbHVtbiAuc29jaWFsLW5hdiB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfSB9XG4gIC5zaXRlLWZvb3Rlcl9fYm90dG9tLWNvbHVtbiB7XG4gICAgbWFyZ2luLXRvcDogMi43NXJlbTsgfVxuICAgIC5zaXRlLWZvb3Rlcl9fYm90dG9tLWNvbHVtbiBwIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5zaXRlLWZvb3Rlcl9fYm90dG9tLWNvbHVtbiBwIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgICAgLnNpdGUtZm9vdGVyX19ib3R0b20tY29sdW1uIHAgYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMwMDgyODM7IH1cbiAgLnNpdGUtZm9vdGVyIC5mb290ZXItbmV3c2xldHRlci1zZWN0aW9uX19idXR0b24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5zaXRlLWZvb3RlciAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9fYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuXG4uZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IC43NXJlbTtcbiAgcGFkZGluZy10b3A6IC42MjVyZW07IH1cbiAgLmZvb3Rlci1uZXdzbGV0dGVyLXNlY3Rpb25fX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDAgMCAuNXJlbTsgfVxuICAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9fZGVzYyB7XG4gICAgZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbTsgfVxuICAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9faW5wdXQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IC43NXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgaGVpZ2h0OiAyLjkzNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzEyNWVtO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogLjc1cmVtIDEuMjVyZW07XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwLjI1cmVtKTsgfVxuICAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9fYnV0dG9uIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5uZXdzbGV0dGVyLXNlY3Rpb24td2lkZ2V0IC5mb290ZXItbmV3c2xldHRlci1zZWN0aW9uX19kZXNjIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubmV3c2xldHRlci1zZWN0aW9uLXdpZGdldCAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9faW5wdXQge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubmV3c2xldHRlci1zZWN0aW9uLXdpZGdldCAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9fYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW4tdG9wOiAuNzVyZW07IH1cbiAgLm5ld3NsZXR0ZXItc2VjdGlvbi13aWRnZXQgLmZvb3Rlci1uZXdzbGV0dGVyLXNlY3Rpb25fX2J1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzAxNWY1ZjsgfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1cmVtKSB7XG4gIC5zaXRlLWZvb3RlciAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbl9faW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuc2l0ZS1mb290ZXJfX2xvZ290eXBlcy1jb2x1bW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDIuMTI1cmVtOyB9IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICAuc2l0ZS1mb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gICAgLnNpdGUtZm9vdGVyX19sb2dvLWxpbmsge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgLTEuMzEyNXJlbTtcbiAgICAgIHBhZGRpbmc6IDEuMTI1cmVtIDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuc2l0ZS1mb290ZXJfX2xvZ28ge1xuICAgICAgbWF4LWhlaWdodDogMS41cmVtOyB9XG4gICAgLnNpdGUtZm9vdGVyX19uYXYtbGlzdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luOiAwIC0xLjMxMjVyZW07XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IC5tZW51LWl0ZW0ge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICAgICAgd2lkdGg6IDUwJTsgfVxuICAgICAgICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IC5tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtIC41cmVtO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICAuc2l0ZS1mb290ZXJfX25hdi1saXN0IC5tZW51LWl0ZW06bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gICAgLnNpdGUtZm9vdGVyX19sb2dvdHlwZXMtY29sdW1uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuc2l0ZS1mb290ZXJfX2xvZ290eXBlcy1saXN0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgLnNpdGUtZm9vdGVyX19zb2NpYWwtY29sdW1uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMuMTI1cmVtOyB9XG4gICAgICAuc2l0ZS1mb290ZXJfX3NvY2lhbC1jb2x1bW4gLnNvY2lhbC1uYXYge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnNpdGUtZm9vdGVyIC5mb290ZXItbmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLnNpdGUtZm9vdGVyIC5mb290ZXItbmV3c2xldHRlci1zZWN0aW9uX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtOyB9XG4gICAgICAuc2l0ZS1mb290ZXIgLmZvb3Rlci1uZXdzbGV0dGVyLXNlY3Rpb25fX2J1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnNpdGUtZm9vdGVyX19ib3R0b20tY29sdW1uIHtcbiAgICAgIG1hcmdpbi10b3A6IDIuMzc1cmVtOyB9XG4gICAgICAuc2l0ZS1mb290ZXJfX2JvdHRvbS1jb2x1bW4gcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjYyNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjYuMTg3NXJlbSkge1xuICAuc2l0ZS1mb290ZXJfX2xvZ28tbGluayB7XG4gICAgbWFyZ2luOiAwIC0xcmVtOyB9XG4gIC5zaXRlLWZvb3Rlcl9fbmF2LWxpc3Qge1xuICAgIG1hcmdpbjogMCAtMXJlbTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnJlcG9ydC10aWxlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2Q4ZDhkODsgfVxuICAucmVwb3J0LXRpbGVfX2xhdGVzdCB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogLjc1cmVtIDEuMjVyZW07IH1cbiAgICAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC41NjI1cmVtO1xuICAgICAgbWFyZ2luLXRvcDogLS4xMjVyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgd2lkdGg6IDAuODEyNWVtO1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMC4zMTI1ZW0gLTQ2LjA2MjVlbTsgfVxuICAgICAgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNSAtNzM3cHg7IH1cbiAgLnJlcG9ydC10aWxlX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxLjEyNXJlbSAxLjI1cmVtIDMuNjI1cmVtOyB9XG4gICAgLnJlcG9ydC10aWxlX19jb250ZW50ID4gcCB7XG4gICAgICBjb2xvcjogIzA3MmU0MztcbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5yZXBvcnQtdGlsZV9fY29udGVudC0taG9tZXBhZ2Uge1xuICAgICAgcGFkZGluZzogMS4zMTI1cmVtIDEuNjc4NXJlbSAxLjU2MjVyZW07IH1cbiAgLnJlcG9ydC10aWxlX19pbWFnZS1saW5rIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAucmVwb3J0LXRpbGVfX2ltYWdlLWxpbmsgaW1nIHtcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2UtaW47XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAucmVwb3J0LXRpbGVfX2RldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IC42ODc1cmVtOyB9XG4gICAgLnJlcG9ydC10aWxlX19kZXRhaWxzLS1ob21lcGFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuODEyNXJlbTsgfVxuICAucmVwb3J0LXRpbGVfX2NhdGVnb3J5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5yZXBvcnQtdGlsZV9fZGF0ZSB7XG4gICAgY29sb3I6ICM3Mzg2ODQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtOyB9XG4gIC5yZXBvcnQtdGlsZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE2ZW07XG4gICAgbWFyZ2luOiAwIDAgMS4xMjVyZW07IH1cbiAgICAucmVwb3J0LXRpbGVfX3RpdGxlLS1ob21lcGFnZSB7XG4gICAgICBtYXJnaW46IDAgMCAuMzEyNXJlbTsgfVxuICAucmVwb3J0LXRpbGVfX3RpdGxlLWxpbmsge1xuICAgIGNvbG9yOiAjMDA4MjgzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5yZXBvcnQtdGlsZV9fYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAxLjEyNXJlbTsgfVxuICAucmVwb3J0LXRpbGUtLWhvbWVwYWdlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogMCAwLjYyNXJlbSAwLjkzNzVyZW0gMCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7IH1cbiAgLnJlcG9ydC10aWxlLS1sYXRlc3Qge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgM3JlbSAwIHJnYmEoNTAsIDUwLCA1MCwgMC4xNSk7IH1cbiAgLnJlcG9ydC10aWxlOmhvdmVyIC5yZXBvcnQtdGlsZV9faW1hZ2UtbGluayBpbWcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi5jYXRlZ29yeS1sYWJlbCB7XG4gIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgcGFkZGluZzogLjI1cmVtIC42MjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY2F0ZWdvcnktbGFiZWxbaHJlZl0ge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXM7IH1cbiAgICAuY2F0ZWdvcnktbGFiZWxbaHJlZl06aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAxNWY1ZjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5jYXRlZ29yeS1sYWJlbC0tc21hbGwge1xuICAgIGZvbnQtc2l6ZTogLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IC42MjVyZW07XG4gICAgcGFkZGluZzogLjEyNXJlbSAuMzEyNXJlbTsgfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1cmVtKSB7XG4gIC5yZXBvcnQtdGlsZV9fbGF0ZXN0IHtcbiAgICBwYWRkaW5nOiAuNzVyZW0gMXJlbTsgfVxuICAucmVwb3J0LXRpbGVfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IC43NXJlbSAuNjI1cmVtOyB9XG4gICAgLnJlcG9ydC10aWxlX19jb250ZW50ID4gcCB7XG4gICAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAucmVwb3J0LXRpbGVfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5saXN0LWl0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogMS41cmVtIDA7IH1cbiAgLmxpc3QtaXRlbV9faW1hZ2UtY29sdW1uLS1tZWRpdW0ge1xuICAgIHdpZHRoOiA0Mi44NiU7IH1cbiAgLmxpc3QtaXRlbV9faW1hZ2UtY29sdW1uLS1iaWcge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLmxpc3QtaXRlbV9faW1hZ2UtbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAubGlzdC1pdGVtX19pbWFnZS1saW5rIGltZyB7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5saXN0LWl0ZW1fX2ltYWdlLWRhdGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogLjM3NXJlbTtcbiAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuNjI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgbGVmdDogMTEuMTElO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTEuMTElO1xuICAgIHdpZHRoOiAyLjI1cmVtOyB9XG4gICAgLmxpc3QtaXRlbV9faW1hZ2UtZGF0ZS0tYmlnIHtcbiAgICAgIGxlZnQ6IDEuMjVyZW07XG4gICAgICB0b3A6IDEuMjVyZW07IH1cbiAgLmxpc3QtaXRlbV9faW1hZ2UtZGF0ZS1tb250aCB7XG4gICAgYmFja2dyb3VuZDogIzA3MmU0MztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJmdXR1cmEtcHRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IC41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGhlaWdodDogLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAuNzVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmxpc3QtaXRlbV9faW1hZ2UtZGF0ZS1kYXkge1xuICAgIGNvbG9yOiAjZjAzZTM5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcImZ1dHVyYS1wdFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAubGlzdC1pdGVtX190b3Age1xuICAgIG1hcmdpbjogMCAwIC4zNzVyZW07IH1cbiAgLmxpc3QtaXRlbV9fdGl0bGUtZGF0ZSB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTsgfVxuICAgIC5saXN0LWl0ZW1fX3RpdGxlLWRhdGUtLWhpZ2gge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAgIC5saXN0LWl0ZW1fX3RpdGxlLWRhdGUgc3BhbiB7XG4gICAgICBjb2xvcjogI2YwM2UzOTsgfVxuICAubGlzdC1pdGVtX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgLjI1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAuMzc1cmVtOyB9XG4gICAgLmxpc3QtaXRlbV9fdGl0bGUtLW5vLXRvcC1wYWRkaW5nIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gICAgLmxpc3QtaXRlbV9fdGl0bGUtLW1lZGl1bSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAubGlzdC1pdGVtX190aXRsZS0tYmlnIHtcbiAgICAgIG1hcmdpbjogMCAwIC4xODc1cmVtO1xuICAgICAgcGFkZGluZy10b3A6IC41NjI1cmVtOyB9XG4gIC5saXN0LWl0ZW1fX3RpdGxlLWxpbmsge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5saXN0LWl0ZW1fX3RpdGxlLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDgyODM7IH1cbiAgICAubGlzdC1pdGVtX190aXRsZS1saW5rLS1pbnZlcnRlZCB7XG4gICAgICBjb2xvcjogIzAwODI4MzsgfVxuICAgICAgLmxpc3QtaXRlbV9fdGl0bGUtbGluay0taW52ZXJ0ZWQ6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAubGlzdC1pdGVtX19kYXRlIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTZlbTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07IH1cbiAgICAubGlzdC1pdGVtX19kYXRlLS1iaWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCAuODc1cmVtOyB9XG4gICAgLmxpc3QtaXRlbV9fZGF0ZS0taW5saW5lIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5saXN0LWl0ZW1fX2NvbnRlbnQgPiBwIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAubGlzdC1pdGVtX19jb250ZW50LS1tZWRpdW0ge1xuICAgIHdpZHRoOiA1Ny4xNCU7IH1cbiAgICAubGlzdC1pdGVtX19jb250ZW50LS1tZWRpdW0gPiBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubGlzdC1pdGVtX19jb250ZW50LS1iaWcge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgICAubGlzdC1pdGVtX19jb250ZW50LS1iaWcgPiBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubGlzdC1pdGVtX19yZWFkLW1vcmUtLWJpZyB7XG4gICAgbWFyZ2luLXRvcDogLjlyZW07IH1cbiAgLmxpc3QtaXRlbV9fcmVhZC1tb3JlLS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmxpc3QtaXRlbS0tbGFzdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAubGlzdC1pdGVtLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmxpc3QtaXRlbS0tbm8tYm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIC5saXN0LWl0ZW0tLWhvbWUtbmV3cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmxpc3QtaXRlbS0taGFsZiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAubGlzdC1pdGVtOmhvdmVyIC5saXN0LWl0ZW1fX2ltYWdlLWxpbmsgaW1nIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1cmVtKSB7XG4gIC5saXN0LWl0ZW0tLWhvbWUtbmV3cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgLmxpc3QtaXRlbV9fdGl0bGUtLW1lZGl1bSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmxpc3QtaXRlbV9fdGl0bGUtLWJpZyB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5saXN0LWl0ZW1fX3JlYWQtbW9yZS0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAyNi4xODc1cmVtKSB7XG4gIC5saXN0LWl0ZW1fX2ltYWdlLWNvbHVtbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIC5saXN0LWl0ZW1fX2ltYWdlLWNvbHVtbi0tbWVkaXVtIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmxpc3QtaXRlbV9faW1hZ2UtY29sdW1uLS1iaWcge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmxpc3QtaXRlbV9fY29udGVudC0tbWVkaXVtIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5saXN0LWl0ZW1fX2NvbnRlbnQtLW1lZGl1bSA+IHAge1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAubGlzdC1pdGVtX19jb250ZW50LS1iaWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5saXN0LWl0ZW1fX3RpdGxlLS1iaWcge1xuICAgIG1hcmdpbjogMCAwIC44NzVyZW07IH1cbiAgLmxpc3QtaXRlbV9fcmVhZC1tb3JlIHtcbiAgICBtYXJnaW4tdG9wOiAuNzVyZW07IH1cbiAgLmxpc3QtaXRlbV9fdGl0bGUtZGF0ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5saXN0LWl0ZW1fX2ltYWdlLWRhdGUtLW1vYmlsZS1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4udG9vbHRpcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkO1xuICBjb2xvcjogIzAwODI4MztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDEuNjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxLjYyNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC44MTI1cmVtOyB9XG4gIC50b29sdGlwLWljb246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnPyc7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLnRvb2x0aXAtd3JhcCB7XG4gIGNvbG9yOiAjMDA4MjgzO1xuICBmb250LXdlaWdodDogNjAwOyB9XG4gIC50b29sdGlwLXdyYXAgLnRvb2x0aXAtaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNDM3NXJlbTsgfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5yZXNvdXJjZS10aWxlLS1hYm91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ucmVzb3VyY2UtdGlsZV9fdG9wIHtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cblxuLnJlc291cmNlLXRpbGVfX2NhdGVnb3J5LWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMS44NzVyZW07XG4gIHdpZHRoOiAxLjg3NXJlbTsgfVxuXG4ucmVzb3VyY2UtdGlsZV9fYWJvdXQtaWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEuODc1cmVtO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEuODc1cmVtOyB9XG5cbi5yZXNvdXJjZS10aWxlX19jYXRlZ29yeS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IC42MjVyZW07XG4gIG1hcmdpbi10b3A6IC4zNzVyZW07IH1cblxuLnJlc291cmNlLXRpbGVfX2NvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTsgfVxuXG4ucmVzb3VyY2UtdGlsZV9fdGl0bGUge1xuICBtYXJnaW46IDAgMCAuMzEyNXJlbTsgfVxuXG4ucmVzb3VyY2UtdGlsZV9fdGl0bGUtbGluayB7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnJlc291cmNlLXRpbGVfX3RpdGxlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMDA4MjgzOyB9XG5cbi5yZXNvdXJjZS10aWxlX19kZXNjIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cbi5yZXNvdXJjZS10aWxlX19saW5rIHtcbiAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wNmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTUwbXMgZWFzZS1vdXQsIG9wYWNpdHkgNTUwbXMsIHZpc2liaWxpdHkgNTUwbXM7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyOyB9XG4gIC5icmVhZGNydW1ic19fbGlzdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuNjg3NXJlbSAwIC42MjVyZW07IH1cbiAgLmJyZWFkY3J1bWJzX19lbGVtZW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuYnJlYWRjcnVtYnNfX2VsZW1lbnQ6YWZ0ZXIge1xuICAgICAgY29sb3I6ICM3Mzg2ODQ7XG4gICAgICBjb250ZW50OiAnLyc7XG4gICAgICBwYWRkaW5nOiAwIC40Mzc1cmVtOyB9XG4gICAgLmJyZWFkY3J1bWJzX19lbGVtZW50Omxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIGNvbG9yOiAjNzM4Njg0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuYnJlYWRjcnVtYnMtLWJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgNDYsIDY4LCAwLjc1KTtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5icmVhZGNydW1icy0tYmx1ZSBhIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgICAgIC5icmVhZGNydW1icy0tYmx1ZSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJyZWFkY3J1bWJzLnNob3dpbmctdmlkZW8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5yZWxhdGVkLWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gIGJveC1zaGFkb3c6IDAgMC4zMTI1cmVtIDEuNTYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICBwYWRkaW5nOiAuNDM3NXJlbSAxLjMxMjVyZW0gMS41cmVtO1xuICB3aWR0aDogNjQlOyB9XG4gIC5yZWxhdGVkLWxpbmtfX3RvcCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gICAgbWFyZ2luOiAwIDAgLjY4NzVyZW07XG4gICAgcGFkZGluZzogMCAwIC4zMTI1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnJlbGF0ZWQtbGlua19faW1hZ2UtbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucmVsYXRlZC1saW5rX19pbWFnZSB7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLWluO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5yZWxhdGVkLWxpbmtfX3RpdGxlIHtcbiAgICBtYXJnaW46IC40Mzc1cmVtIDAgLjI1cmVtOyB9XG4gIC5yZWxhdGVkLWxpbmtfX3RpdGxlLWxpbmsge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5yZWxhdGVkLWxpbmtfX3RpdGxlLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDgyODM7IH1cbiAgLnJlbGF0ZWQtbGluayBwLnJlbGF0ZWQtbGluay1kZXNjIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW46IC4yNXJlbSAwIC44MTI1cmVtOyB9XG4gIC5yZWxhdGVkLWxpbmstLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogLS43NXJlbSAyLjM3NXJlbSAwIC0xMi41cmVtOyB9XG4gIC5yZWxhdGVkLWxpbms6aG92ZXIgLnJlbGF0ZWQtbGlua19faW1hZ2Uge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5yZWxhdGVkLWxpbmsgKyAqOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzguMjVyZW0pIHtcbiAgLnJlbGF0ZWQtbGluay0tbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMyU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1cmVtKSB7XG4gIC5yZWxhdGVkLWxpbmsge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgd2lkdGg6IGF1dG87IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1cmVtKSB7XG4gIC5yZWxhdGVkLWxpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjMxMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNi4xODc1cmVtKSB7XG4gIC5yZWxhdGVkLWxpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgLnJlbGF0ZWQtbGluayAucm93IC5jb2x1bW5zIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgIC5yZWxhdGVkLWxpbmsgLnJvdyAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuODc1cmVtOyB9XG4gICAgLnJlbGF0ZWQtbGlua19fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBtYXJnaW46IC4zMTI1cmVtIDA7IH1cbiAgICAucmVsYXRlZC1saW5rIHAucmVsYXRlZC1saW5rLWRlc2Mge1xuICAgICAgZm9udC1zaXplOiAuNjI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IC43NXJlbTsgfVxuICAgIC5yZWxhdGVkLWxpbmsgLmJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4ubmV3c2xldHRlci1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MmU0MztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL25ld3NsZXR0ZXItYmcuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMjAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDUuNTYyNXJlbTtcbiAgcGFkZGluZy10b3A6IDUuMzc1cmVtOyB9XG4gIC5uZXdzbGV0dGVyLXNlY3Rpb25fX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxLjEyNXJlbTsgfVxuICAubmV3c2xldHRlci1zZWN0aW9uIC50ZXh0d2lkZ2V0IHAge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICBtYXJnaW46IDA7IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4ud3AtY2FwdGlvbiB7XG4gIG1hcmdpbjogMy4wNjI1cmVtIC0xMi41cmVtIDMuNzVyZW07XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLndwLWNhcHRpb24gaW1nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLndwLWNhcHRpb25fX2JhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3LCA0NiwgNjgsIDAuNSk7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxlZnQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAuNjI1cmVtIDEuODc1cmVtIC44NzVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC53cC1jYXB0aW9uX190ZXh0LXdyYXAge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07IH1cbiAgLndwLWNhcHRpb25fX2hlYWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLndwLWNhcHRpb25fX2hlYWQtLXNoYXJlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAud3AtY2FwdGlvbl9fdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAud3AtY2FwdGlvbl9fc2hhcmUtd3JhcCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC53cC1jYXB0aW9uX19zaGFyZS1idG4ge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjc1cmVtOyB9XG4gICAgLndwLWNhcHRpb25fX3NoYXJlLWJ0bjpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAud3AtY2FwdGlvbl9fc2hhcmUtaWNvbiB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4uc2luZ2xlIC53cC1jYXB0aW9uIHtcbiAgbWFyZ2luOiAzLjA2MjVyZW0gMCAzLjc1cmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4LjI1cmVtKSB7XG4gIC53cC1jYXB0aW9uX190ZXh0IHtcbiAgICBmb250LXNpemU6IC43NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0cmVtKSB7XG4gIC53cC1jYXB0aW9uIHtcbiAgICBtYXJnaW46IDMuMDYyNXJlbSAtNy41cmVtIDMuNzVyZW07IH1cbiAgLnNpbmdsZSAud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAzLjA2MjVyZW0gMCAzLjc1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NXJlbSkge1xuICAud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAyLjVyZW0gLTIuODc1cmVtIDNyZW07IH1cbiAgICAud3AtY2FwdGlvbl9fYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM2Y2EwY2E7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAuNzVyZW0gMXJlbSAycmVtO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC53cC1jYXB0aW9uX190ZXh0LXdyYXAge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgICAud3AtY2FwdGlvbl9fc2hhcmUtd3JhcCB7XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAgIC53cC1jYXB0aW9uX19oZWFkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAud3AtY2FwdGlvbl9faGVhZC0tc2hhcmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNzVyZW07IH1cbiAgICAud3AtY2FwdGlvbl9fc2hhcmUtYnRuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnNpbmdsZSAud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAzcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICAud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAycmVtIC0xLjMxMjVyZW0gMi41cmVtOyB9XG4gIC5zaW5nbGUgLndwLWNhcHRpb24ge1xuICAgIG1hcmdpbjogMnJlbSAtMS4zMTI1cmVtIDIuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI2LjE4NzVyZW0pIHtcbiAgLndwLWNhcHRpb24ge1xuICAgIG1hcmdpbjogMnJlbSAtMXJlbSAyLjVyZW07IH1cbiAgLnNpbmdsZSAud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAycmVtIC0xcmVtIDIuNXJlbTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLmtleS10ZXJtLWJsb2NrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDgsIDE2MCwgMjAxLCAwLjEpO1xuICBib3gtc2hhZG93OiAwIDAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBwYWRkaW5nOiAxLjE4NzVyZW0gMS4xODc1cmVtIDEuODc1cmVtO1xuICB3aWR0aDogMjMuNzVyZW07IH1cbiAgLmtleS10ZXJtLWJsb2NrX190b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzLjc1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC4yNXJlbTtcbiAgICAgIHdpZHRoOiAxLjkzNzVlbTtcbiAgICAgIGhlaWdodDogMS45Mzc1ZW07XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMC4zMTI1ZW0gLTQ4Ljg3NWVtOyB9XG4gICAgICAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNSAtNzgycHg7IH1cbiAgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlLXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAuNjg3NXJlbTsgfVxuICAua2V5LXRlcm0tYmxvY2tfX2FydGljbGUtdGl0bGUtbGluayB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlLXRpdGxlLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDgyODM7IH1cbiAgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlLWRlc2Mge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW46IDAgMCAxLjEyNXJlbTsgfVxuICAua2V5LXRlcm0tYmxvY2stLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAzLjg3NXJlbSAxcmVtIDA7IH1cblxuLnBvc3QtY29udGVudCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGUtZGVzYyB7XG4gIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogLjAxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgbWFyZ2luOiAwIDAgMS4xMjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRyZW0pIHtcbiAgLmtleS10ZXJtLWJsb2NrIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAua2V5LXRlcm0tYmxvY2tfX2FydGljbGUtdGl0bGUge1xuICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI2LjE4NzVyZW0pIHtcbiAgLmtleS10ZXJtLWJsb2NrIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgd2lkdGg6IGF1dG87IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5yZXBvcnQtYmxvY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTMpO1xuICBtYXJnaW46IDAgLTMuNXJlbSAzcmVtO1xuICBwYWRkaW5nOiAxLjVyZW0gMy41cmVtOyB9XG4gIC5yZXBvcnQtYmxvY2tfX3RpdGxlIHtcbiAgICBtYXJnaW46IDIuMjVyZW0gMCAxLjVyZW07IH1cbiAgLnJlcG9ydC1ibG9ja19fdGl0bGUtbGluayB7XG4gICAgY29sb3I6ICMwMDgyODM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnJlcG9ydC1ibG9ja19fdGl0bGUtbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzAwODI4MzsgfVxuICAucmVwb3J0LWJsb2NrX19pbWFnZS1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IC0yLjI1cmVtOyB9XG4gIC5yZXBvcnQtYmxvY2tfX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMS44MTI1cmVtOyB9XG4gIC5yZXBvcnQtYmxvY2sgcC5yZXBvcnQtYmxvY2stZGVzYyB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MC42MjVyZW0pIHtcbiAgLnJlcG9ydC1ibG9jayB7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTJyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAucmVwb3J0LWJsb2NrX19pbWFnZS1saW5rIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0cmVtKSB7XG4gIC5yZXBvcnQtYmxvY2tfX3RpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NXJlbSkge1xuICAucmVwb3J0LWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogLTIuODc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTIuODc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMi44NzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1cmVtKSB7XG4gIC5yZXBvcnQtYmxvY2sge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjMxMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNi4xODc1cmVtKSB7XG4gIC5yZXBvcnQtYmxvY2sge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgLnJlcG9ydC1ibG9jayAucm93IC5jb2x1bW5zOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5yZXBvcnQtaXRlbV9faW1hZ2UtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXBvcnQtaXRlbV9faW1hZ2UtbGluayBpbWcge1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjsgfVxuXG4ucmVwb3J0LWl0ZW1fX3RpdGxlIHtcbiAgbWFyZ2luOiAwIDAgLjQzNzVyZW07IH1cblxuLnJlcG9ydC1pdGVtX190aXRsZS1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5yZXBvcnQtaXRlbV9fY2F0ZWdvcnkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnJlcG9ydC1pdGVtX19kYXRlIHtcbiAgY29sb3I6ICM3Mzg2ODQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICBsaW5lLWhlaWdodDogLjg3NXJlbTsgfVxuXG4ucmVwb3J0LWl0ZW06aG92ZXIgLnJlcG9ydC1pdGVtX19pbWFnZS1saW5rIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5wbGF5LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDgyODM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm94LXNoYWRvdzogMCAwLjMxMjVyZW0gMS41NjI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA5LjM1cmVtO1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA5LjM1cmVtO1xuICB6LWluZGV4OiAyOyB9XG4gIC5wbGF5LWJ1dHRvbl9faWNvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0uNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDIuNXJlbTsgfVxuICAucGxheS1idXR0b246YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wbGF5LWJ1dHRvbjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgI2ZmZik7XG4gICAgYm9yZGVyLXJhZGl1czogNXJlbTtcbiAgICBib3R0b206IC0uMzEyNXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBsZWZ0OiAtLjMxMjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtLjMxMjVyZW07XG4gICAgdG9wOiAtLjMxMjVyZW07XG4gICAgei1pbmRleDogLTE7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICAucGxheS1idXR0b24ge1xuICAgIGhlaWdodDogNC41cmVtO1xuICAgIHdpZHRoOiA0LjVyZW07IH1cbiAgICAucGxheS1idXR0b25fX2ljb24ge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtLjI1cmVtO1xuICAgICAgd2lkdGg6IDFyZW07IH1cbiAgICAucGxheS1idXR0b246YWZ0ZXIge1xuICAgICAgYm90dG9tOiAtLjE2cmVtO1xuICAgICAgbGVmdDogLS4xNnJlbTtcbiAgICAgIHJpZ2h0OiAtLjE2cmVtO1xuICAgICAgdG9wOiAtLjE2cmVtOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uZXh0ZXJuYWwtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTsgfVxuICAuZXh0ZXJuYWwtbGlua19faWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogLjc1ZW07XG4gICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgIG1hcmdpbi10b3A6IC0uMTI1ZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ucG9zdC1jb250ZW50IHAgYS5leHRlcm5hbC1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5zdGlja3ktbmF2YmFyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zOyB9XG4gIC5zdGlja3ktbmF2YmFyX19saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuNzVyZW0gMDsgfVxuICAuc3RpY2t5LW5hdmJhcl9fbGlzdC1lbGVtZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuc3RpY2t5LW5hdmJhcl9fbGlzdC1lbGVtZW50OmZpcnN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuc3RpY2t5LW5hdmJhcl9fbGlzdC1lbGVtZW50Omxhc3QtY2hpbGQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnN0aWNreS1uYXZiYXJfX2xpc3QtZWxlbWVudC1saW5rIHtcbiAgICBib3JkZXItcmFkaXVzOiAxLjEyNXJlbTtcbiAgICBjb2xvcjogIzczODY4NDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogLjM3NXJlbSAxLjI1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zIGVhc2Utb3V0LCBjb2xvciAyNTBtcyBlYXNlLW91dDsgfVxuICAgIC5zdGlja3ktbmF2YmFyX19saXN0LWVsZW1lbnQtbGluazpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuc3RpY2t5LW5hdmJhcl9fbGlzdC1lbGVtZW50LWxpbmstLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLnN0aWNreS1uYXZiYXItLXN0aWNreSB7XG4gICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjMxMjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1cmVtKSB7XG4gIC5zdGlja3ktbmF2YmFyX19saXN0LWVsZW1lbnQtbGluayB7XG4gICAgcGFkZGluZzogLjM3NXJlbSAuNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1cmVtKSB7XG4gIC5zdGlja3ktbmF2YmFyX19yb3cge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuICAuc3RpY2t5LW5hdmJhcl9fbGlzdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuc3RpY2t5LW5hdmJhcl9fbGlzdC1lbGVtZW50IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5sb2dpbi1tb2RhbCB7XG4gIGJhY2tncm91bmQ6ICMwNzJlNDM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE3OSwgMTgyLCA2MSwgMC4yNSk7XG4gIGNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA3LjM3NXJlbSk7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNy4zNzVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1NTBtcyBlYXNlLW91dCwgb3BhY2l0eSA1NTBtcywgdmlzaWJpbGl0eSA1NTBtcztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogNDsgfVxuICAubG9naW4tbW9kYWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDQwLjc1ZW07XG4gICAgaGVpZ2h0OiAyNy4yNWVtO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wLjMxMjVlbSAtMTguMjVlbTsgfVxuICAgIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSB7XG4gICAgICB3aWR0aDogNjUxcHg7XG4gICAgICBoZWlnaHQ6IDQzNXB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUgLTI5MnB4OyB9XG4gIC5sb2dpbi1tb2RhbF9fdmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDUwMG1zIGVhc2Utb3V0OyB9XG4gICAgLmxvZ2luLW1vZGFsX192aWV3LS1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmxvZ2luLW1vZGFsX192aWV3LS12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAubG9naW4tbW9kYWxfX3ZpZXctLXRyYW5zZm9ybSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNTAwbXMgZWFzZS1pbiwgdHJhbnNmb3JtIDUwMG1zIGVhc2UtaW47IH1cbiAgLmxvZ2luLW1vZGFsX190aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAzLjI1cmVtIGF1dG8gMS4zNzVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IC41ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5sb2dpbi1tb2RhbF9fdGl0bGU6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDMuMTI1cmVtOyB9XG4gIC5sb2dpbi1tb2RhbF9fZmllbGQtd3JhcCB7XG4gICAgbWFyZ2luOiAwIDAgMi4xMjVyZW07XG4gICAgcGFkZGluZy10b3A6IDEuMTI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5sb2dpbi1tb2RhbF9fZmllbGQtd3JhcCBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAnZnV0dXJhLXB0Jywgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgIGxlZnQ6IC42MjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4xMjVyZW07XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEuNTYyNXJlbTtcbiAgICAgIHRyYW5zaXRpb246IHRvcCAyMDBtcztcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgIC5sb2dpbi1tb2RhbF9fZmllbGQtd3JhcCBsYWJlbC5maWxsZWQge1xuICAgICAgICB0b3A6IDA7IH1cbiAgLmxvZ2luLW1vZGFsX19maWVsZC1lcnJvciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5sb2dpbi1tb2RhbF9fZmllbGQtZXJyb3ItLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgIG1hcmdpbjogLjI1cmVtIDA7IH1cbiAgLmxvZ2luLW1vZGFsIGlucHV0W3R5cGU9J3RleHQnXSwgLmxvZ2luLW1vZGFsIGlucHV0W3R5cGU9J2VtYWlsJ10sIC5sb2dpbi1tb2RhbCBpbnB1dFt0eXBlPSdwYXNzd29yZCddIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAnZnV0dXJhLXB0Jywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbS1jb2xvciAyMDBtcywgcGFkZGluZyAyMDBtcywgY29sb3IgMjAwbXM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjsgfVxuICAgIC5sb2dpbi1tb2RhbCBpbnB1dFt0eXBlPSd0ZXh0J10uZmlsbGVkLCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzLCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0nZW1haWwnXS5maWxsZWQsIC5sb2dpbi1tb2RhbCBpbnB1dFt0eXBlPSdlbWFpbCddOmZvY3VzLCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXS5maWxsZWQsIC5sb2dpbi1tb2RhbCBpbnB1dFt0eXBlPSdwYXNzd29yZCddOmZvY3VzIHtcbiAgICAgIHBhZGRpbmc6IC4zNzVyZW0gMXJlbSAuMjVyZW07IH1cbiAgICAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzLCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0nZW1haWwnXTpmb2N1cywgLmxvZ2luLW1vZGFsIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwODI4MzsgfVxuICAgICAgLmxvZ2luLW1vZGFsIGlucHV0W3R5cGU9J3RleHQnXTpmb2N1cyArIGxhYmVsLCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0nZW1haWwnXTpmb2N1cyArIGxhYmVsLCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cyArIGxhYmVsIHtcbiAgICAgICAgdG9wOiAwOyB9XG4gICAgLmxvZ2luLW1vZGFsIGlucHV0W3R5cGU9J3RleHQnXS5pcy1pbnZhbGlkLWlucHV0LCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0nZW1haWwnXS5pcy1pbnZhbGlkLWlucHV0LCAubG9naW4tbW9kYWwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXS5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmMDNlMzk7IH1cbiAgLmxvZ2luLW1vZGFsIHNlbGVjdCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAuMzc1cmVtIDFyZW0gLjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNvbG9yIDIwMG1zLCBwYWRkaW5nIDIwMG1zLCBjb2xvciAyMDBtcztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgLmxvZ2luLW1vZGFsIHNlbGVjdCBvcHRpb24ge1xuICAgICAgY29sb3I6ICMwNzJlNDM7IH1cbiAgICAubG9naW4tbW9kYWwgc2VsZWN0OmZvY3VzIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDgyODM7IH1cbiAgLmxvZ2luLW1vZGFsIC5sb2dpbi1hZGRpdGlvbmFsIHtcbiAgICBtYXJnaW46IDAgMCAyLjI1cmVtOyB9XG4gIC5sb2dpbi1tb2RhbCAubG9naW4tcmVtZW1iZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDsgfVxuICAubG9naW4tbW9kYWwgLmxvZ2luLWZvcmdvdCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5sb2dpbi1tb2RhbCAubG9naW4tZm9yZ290IGEge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5sb2dpbi1tb2RhbCAubG9naW4tZm9yZ290IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzAwODI4MzsgfVxuICAubG9naW4tbW9kYWwgLmxvZ2luLXN1Ym1pdCB7XG4gICAgbWFyZ2luOiAwIDAgMi43NXJlbTsgfVxuICAubG9naW4tbW9kYWwgLmxvZ2luLW1lc3NhZ2Uge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubG9naW4tbW9kYWxfX2FjY291bnQtbm90aWNlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxvZ2luLW1vZGFsX19hY2NvdW50LW5vdGljZS1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gICAgLmxvZ2luLW1vZGFsX19hY2NvdW50LW5vdGljZS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMDA4MjgzOyB9XG4gIC5sb2dpbi1tb2RhbF9fcmVnaXN0ZXItd2h5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmNWY5O1xuICAgIGJvcmRlcjogc29saWQgM3B4ICNmZmY7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgcGFkZGluZzogMy4yNXJlbSAxLjg3NXJlbSAyLjVyZW07IH1cbiAgLmxvZ2luLW1vZGFsX19yZWdpc3Rlci13aHktd2lkZ2V0IC50ZXh0d2lkZ2V0IHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmOyB9XG4gICAgLmxvZ2luLW1vZGFsX19yZWdpc3Rlci13aHktd2lkZ2V0IC50ZXh0d2lkZ2V0IHAge1xuICAgICAgbWFyZ2luOiAwIDAgMi4yNXJlbTsgfVxuICAgIC5sb2dpbi1tb2RhbF9fcmVnaXN0ZXItd2h5LXdpZGdldCAudGV4dHdpZGdldCB1bCB7XG4gICAgICBjb2xvcjogIzAwODI4MztcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cbiAgICAgIC5sb2dpbi1tb2RhbF9fcmVnaXN0ZXItd2h5LXdpZGdldCAudGV4dHdpZGdldCB1bCBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuNXJlbTsgfVxuICAubG9naW4tbW9kYWxfX3JlZ2lzdGVyLXdoeS10aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgLjc1cmVtOyB9XG4gIC5sb2dpbi1tb2RhbCAucmVnaXN0ZXItbmV3c2xldHRlciB7XG4gICAgbWFyZ2luOiAwIDAgMnJlbTsgfVxuICAubG9naW4tbW9kYWxfX2ZvcmdvdHRlbi1wYXNzd29yZCBmb3JtLmVtYWlsLXNlbnQgLmZvcmdvdHRlbi1wYXNzd29yZC1lbWFpbCxcbiAgLmxvZ2luLW1vZGFsX19mb3Jnb3R0ZW4tcGFzc3dvcmQgZm9ybS5lbWFpbC1zZW50IC5sb2dpbi1zdWJtaXQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmxvZ2luLW1vZGFsX19mb3Jnb3R0ZW4tcGFzc3dvcmQtZGVzYyB7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDAgMCAzLjM3NXJlbTsgfVxuICAubG9naW4tbW9kYWwtLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLm1vZGFsLWNoZWNrYm94IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAubW9kYWwtY2hlY2tib3g6Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5tb2RhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubW9kYWwtbGFiZWw6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLjYyNXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHdpZHRoOiAxLjVyZW07IH1cbiAgLm1vZGFsLWxhYmVsOmFmdGVyIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBjb250ZW50OiAn4pyUJztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXM7XG4gICAgd2lkdGg6IDEuNXJlbTsgfVxuXG4ubG9naW4tbW9kYWwtb3BlbmVkIC5sb2dpbi1tb2RhbCB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDEwcmVtKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IGF1dG87IH1cblxuLmFkbWluLWJhciAubG9naW4tbW9kYWwge1xuICBtYXJnaW4tdG9wOiAzMnB4OyB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVyZW0pIHtcbiAgLmxvZ2luLW1vZGFsIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0LjVyZW0pO1xuICAgIHRvcDogNC41cmVtOyB9XG4gICAgLmxvZ2luLW1vZGFsX19yZWdpc3Rlci13aHkge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAgIC5sb2dpbi1tb2RhbF9fdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTsgfSB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLmxvZ2luLW1vZGFsIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzcmVtKTtcbiAgICB0b3A6IDNyZW07IH1cbiAgICAubG9naW4tbW9kYWxfX3JlZ2lzdGVyID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4ucmVwb3J0LXBvcHVwIHtcbiAgYmFja2dyb3VuZDogI2YwZjVmOTtcbiAgYm94LXNoYWRvdzogMCA1cHggMjVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGNvbG9yOiAjMDcyZTQ0O1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAzNi4yNXJlbTtcbiAgcGFkZGluZzogMS4xODc1cmVtIDEuMTg3NXJlbSAxLjc1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB3aWR0aDogOTYlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5yZXBvcnQtcG9wdXAge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgdG9wOiAwO1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAucmVwb3J0LXBvcHVwX190aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcImZ1dHVyYS1wdFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDEyNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuMzEyNXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5yZXBvcnQtcG9wdXBfX2NvbnRlbnQge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTY2N2VtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgIC5yZXBvcnQtcG9wdXBfX2NvbnRlbnQgcCB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAucmVwb3J0LXBvcHVwX19jb250ZW50IHA6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMTI1cmVtOyB9XG4gIC5yZXBvcnQtcG9wdXBfX2J1dHRvbnMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlcG9ydC1wb3B1cF9fYnRuIHtcbiAgICBjb2xvcjogIzA3MmU0NDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxNjY3ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5yZXBvcnQtcG9wdXBfX2J0bjpiZWZvcmUsIC5yZXBvcnQtcG9wdXBfX2J0bjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgd2lkdGg6IDEuMjVyZW07IH1cbiAgICAucmVwb3J0LXBvcHVwX19idG46YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgY29udGVudDogJyc7IH1cbiAgICAucmVwb3J0LXBvcHVwX19idG46YWZ0ZXIge1xuICAgICAgY29udGVudDogJ+KclSc7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1czsgfVxuICAgIC5yZXBvcnQtcG9wdXBfX2J0bjpob3ZlcjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5yZXBvcnQtcG9wdXBfX2FjY2VwdC1idG4ge1xuICAgIG1hcmdpbi1yaWdodDogNC4zNzVyZW07IH1cblxuLnJlcG9ydC1wb3B1cC13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cywgdmlzaWJpbGl0eSAuNHM7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5yZXBvcnQtcG9wdXAtd3JhcHBlci52aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uaG9tZS10b3Age1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaG9tZXBhZ2UtdG9wLWJhY2tncm91bmQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgbWluLWhlaWdodDogNDgwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cmVtO1xuICBwYWRkaW5nLXRvcDogNC41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7IH1cbiAgLmhvbWUtdG9wX19jb250ZW50IGgxIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmhvbWUtdG9wX19jb250ZW50IHAge1xuICAgIG1hcmdpbjogMXJlbSAwIDA7IH1cbiAgLmhvbWUtdG9wX19jb250ZW50IC5idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IC43NXJlbTsgfVxuICAuaG9tZS10b3BfX3JlcG9ydC1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5ob21lLXRvcF9fcmVwb3J0LWNvbHVtbiAucmVwb3J0LXRpbGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC42MjVyZW07XG4gICAgICB0b3A6IC0yLjM3NXJlbTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuXG4uaG9tZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gIHBhZGRpbmctdG9wOiAyLjMxMjVyZW07IH1cblxuLmhvbWUtcmVwb3J0c19fY2F0ZWdvcmllcyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxLjE4NzVyZW0gMDsgfVxuXG4uaG9tZS1yZXBvcnRzX19jYXRlZ29yeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAyLjM3NXJlbTsgfVxuXG4uaG9tZS1yZXBvcnRzX19jYXRlZ29yeS1idXR0b24ge1xuICBjb2xvcjogIzAwODI4MztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuaG9tZS1yZXBvcnRzX19jYXRlZ29yeS1idXR0b24tLWFjdGl2ZSB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uaG9tZS1yZXBvcnRzX19yZXBvcnRzIC5saXN0LWl0ZW1fX3Jvdy0tc21hbGwucm93IHtcbiAgbWF4LXdpZHRoOiAzNy41cmVtOyB9XG5cbi5ob21lLXJlcG9ydHNfX3JlcG9ydHMtaXRlbS0taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uaG9tZS1yZXBvcnRzX19yZXBvcnRzLWl0ZW0tLWxhc3QgLmxpc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDA7IH1cblxuLmhvbWUtc2VjdGlvbi10b3Age1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgLmhvbWUtc2VjdGlvbi10b3BfX3RpdGxlIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmhvbWUtc2VjdGlvbi10b3BfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAuMTg3NXJlbTsgfVxuICAuaG9tZS1zZWN0aW9uLXRvcC0tbm8tYm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG5cbi5ob21lLWNvbXBhbnktcmVwb3J0cyxcbi5ob21lLW5ld3Mge1xuICBtYXJnaW4tdG9wOiA3LjI1cmVtOyB9XG5cbi5ob21lLWNvbXBhbnktcmVwb3J0c19fcm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDgsIDE2MCwgMjAxLCAwLjEpO1xuICBwYWRkaW5nLWJvdHRvbTogMS4wNjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMS4xODc1cmVtOyB9XG5cbi5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDEwLjVyZW07XG4gIHdpZHRoOiA5LjYyNWVtO1xuICBoZWlnaHQ6IDEwLjU2MjVlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTAuMzEyNWVtIC0yLjEyNWVtOyB9XG4gIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSB7XG4gICAgd2lkdGg6IDE1M3B4O1xuICAgIGhlaWdodDogMTY4cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUgLTM0cHg7IH1cblxuLmhvbWUtY29tcGFueS1yZXBvcnRzX190aXRsZS13cmFwcGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogLjM3NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5ob21lLWNvbXBhbnktcmVwb3J0c19fdGl0bGUtd3JhcHBlciAudG9vbHRpcC1pY29uIHtcbiAgICBsZWZ0OiAtMi4yNXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC4xMjVyZW07IH1cblxuLmhvbWUtY29tcGFueS1yZXBvcnRzX190aXRsZSB7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICBtYXJnaW46IDA7IH1cblxuLmhvbWUtY29tcGFueS1yZXBvcnRzX19kZXNjIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIG1hcmdpbjogMCAwIC42ODc1cmVtOyB9XG5cbi5ob21lLWNvbXBhbnktcmVwb3J0cyArIC5ob21lLW5ld3Mge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG5cbi5ob21lLW5ld3Mge1xuICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICAuaG9tZS1uZXdzX190b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuLmhvbWUtYXdhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gIHBhZGRpbmctYm90dG9tOiAuNzVyZW07XG4gIHBhZGRpbmctdG9wOiAuNzVyZW07IH1cbiAgLmhvbWUtYXdhcmRfX2NvbnRlbnQge1xuICAgIGNvbG9yOiAjMDcyZTQzOyB9XG4gICAgLmhvbWUtYXdhcmRfX2NvbnRlbnQgaDEsXG4gICAgLmhvbWUtYXdhcmRfX2NvbnRlbnQgaDIsXG4gICAgLmhvbWUtYXdhcmRfX2NvbnRlbnQgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS4wNjI1cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMi44MTI1cmVtOyB9XG4gICAgLmhvbWUtYXdhcmRfX2NvbnRlbnQgcCB7XG4gICAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgICAgbWFyZ2luOiAwIDAgMS41cmVtOyB9XG4gIC5ob21lLWF3YXJkX19pbWFnZSB7XG4gICAgYm9yZGVyOiBzb2xpZCAuMTg3NXJlbSAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMS41NjI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG4uaG9tZS1yZXNvdXJjZXMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nLWJvdHRvbTogNS4xODc1cmVtO1xuICBwYWRkaW5nLXRvcDogMy4wNjI1cmVtOyB9XG4gIC5ob21lLXJlc291cmNlc19fdG9wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gIC5ob21lLXJlc291cmNlc19fZ3JpZC1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNjguNzVyZW0pIHtcbiAgLmhvbWUtY29tcGFueS1yZXBvcnRzLFxuICAuaG9tZS1uZXdzIHtcbiAgICBtYXJnaW4tdG9wOiAzLjI1cmVtOyB9XG4gIC5ob21lLWNvbXBhbnktcmVwb3J0cyArIC5ob21lLW5ld3Mge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmhvbWUtbmV3c19fdG9wLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmhvbWUtbmV3c19fdG9wLWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1cmVtKSB7XG4gIC5ob21lLWNvbXBhbnktcmVwb3J0cyxcbiAgLmhvbWUtbmV3cyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAuaG9tZS1hd2FyZF9fY29udGVudCBoMSxcbiAgLmhvbWUtYXdhcmRfX2NvbnRlbnQgaDIsXG4gIC5ob21lLWF3YXJkX19jb250ZW50IGgzIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5ob21lLXJlc291cmNlcyB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMi41cmVtOyB9XG4gICAgLmhvbWUtcmVzb3VyY2VzX19ncmlkID4gLnJvdyA+IC5jb2x1bW5zIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfSB9XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLmhvbWUtdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogMi4xMjVyZW07IH1cbiAgICAuaG9tZS10b3BfX2NvbnRlbnQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAuaG9tZS10b3BfX2NvbnRlbnQgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgfVxuICAgIC5ob21lLXRvcF9fcmVwb3J0LWNvbHVtbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDQuNXJlbSAtMXJlbSAwO1xuICAgICAgcGFkZGluZzogMCAuMzEyNXJlbTtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAuaG9tZS10b3BfX3JlcG9ydC1jb2x1bW4gLnJlcG9ydC10aWxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTIuMjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5ob21lLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtOyB9XG4gIC5ob21lLXJlcG9ydHMgLmxpc3QtaXRlbV9fcm93LS1zbWFsbCAuc21hbGwtNCB7XG4gICAgd2lkdGg6IDI5LjE2JTsgfVxuICAuaG9tZS1yZXBvcnRzIC5saXN0LWl0ZW1fX3Jvdy0tc21hbGwgLnNtYWxsLTgge1xuICAgIG1hcmdpbi1sZWZ0OiA0LjE4JTtcbiAgICB3aWR0aDogNjYuNjYlOyB9XG4gIC5ob21lLXJlcG9ydHMgLmxpc3QtaXRlbV9fdGl0bGUtLXNtYWxsIHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmhvbWUtc2VjdGlvbi10b3BfX2xpbmsge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmhvbWUtY29tcGFueS1yZXBvcnRzX19yb3cucm93LmNvbGxhcHNlIHtcbiAgICBtYXJnaW4tbGVmdDogLTEuMzEyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjMxMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjMxMjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS4zMTI1cmVtOyB9XG4gIC5ob21lLW5ld3MgLmxpc3QtaXRlbV9fcm93IC5zbWFsbC01IHtcbiAgICB3aWR0aDogMjkuMTYlOyB9XG4gIC5ob21lLW5ld3MgLmxpc3QtaXRlbV9fcm93IC5zbWFsbC03IHtcbiAgICBtYXJnaW4tbGVmdDogNC4xOCU7XG4gICAgd2lkdGg6IDY2LjY2JTsgfVxuICAuaG9tZS1uZXdzIC5saXN0LWl0ZW1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmhvbWUtYXdhcmQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtOyB9XG4gICAgLmhvbWUtYXdhcmRfX2NvbnRlbnQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAuaG9tZS1hd2FyZF9fY29udGVudCBoMSxcbiAgICAgIC5ob21lLWF3YXJkX19jb250ZW50IGgyLFxuICAgICAgLmhvbWUtYXdhcmRfX2NvbnRlbnQgaDMge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmhvbWUtcmVzb3VyY2VzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNi4xODc1cmVtKSB7XG4gIC5ob21lLXNlY3Rpb24tdG9wLS1tb2JpbGUtY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaG9tZS1zZWN0aW9uLXRvcF9fdGl0bGUtLW1vYmlsZS1jZW50ZXJlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IC44NzVyZW07IH1cbiAgLmhvbWUtc2VjdGlvbi10b3BfX2xpbmstLW1vYmlsZS1jZW50ZXJlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC5ob21lLWNvbXBhbnktcmVwb3J0cyAuc21hbGwtNSB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB9XG4gIC5ob21lLWNvbXBhbnktcmVwb3J0cyAuc21hbGwtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgICB3aWR0aDogNjUlOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uYmxvZy10b3Age1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBwYWRkaW5nLWJvdHRvbTogNS4zMTI1cmVtO1xuICBwYWRkaW5nLXRvcDogNy4xNzg1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmJsb2ctdG9wX19vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgxNywgOTAsIDEyMSwgMC44KSwgcmdiYSg3LCA0NiwgNjcsIDAuOCkpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuYmxvZy10b3BfX3N2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmJsb2ctdG9wX19zdmctLXRvcCB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwOyB9XG4gICAgLmJsb2ctdG9wX19zdmctLW1pZGRsZSB7XG4gICAgICBsZWZ0OiA2NHB4O1xuICAgICAgdG9wOiAxMjBweDsgfVxuICAgIC5ibG9nLXRvcF9fc3ZnLS1ib3R0b20ge1xuICAgICAgbGVmdDogMjEzcHg7XG4gICAgICB0b3A6IDI4NXB4OyB9XG4gIC5ibG9nLXRvcF9fcm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmJsb2ctdG9wX19mZWF0dXJlZCB7XG4gICAgcGFkZGluZy10b3A6IDEuODEyNXJlbTsgfVxuICAuYmxvZy10b3BfX2ZlYXR1cmVkLXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxLjYyNXJlbTsgfVxuICAuYmxvZy10b3BfX2ZlYXR1cmVkLXRpdGxlLWxpbmsge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5ibG9nLXRvcF9fZmVhdHVyZWQtdGl0bGUtbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzAwODI4MzsgfVxuICAuYmxvZy10b3BfX2ZlYXR1cmVkLWNhdGVnb3J5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07IH1cbiAgLmJsb2ctdG9wX19mZWF0dXJlZC1leGNlcnB0IHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMCAwIDEuMzEyNXJlbTsgfVxuICAuYmxvZy10b3BfX2VkaXRvcnMtdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICBwYWRkaW5nOiAwIDAgMXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX19pbWFnZS1saW5rIHtcbiAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDEuNTYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX19pbWFnZS1saW5rOmFmdGVyIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX190aXRsZS1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX190aXRsZS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMDA4MjgzOyB9XG4gIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX19jb250ZW50ID4gcCB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJsb2ctdG9wX19lZGl0b3JzLWFydGljbGVzIC5saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uc2VhcmNoLWJhciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsgfVxuICAuc2VhcmNoLWJhcl9fZm9ybSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0yLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zZWFyY2gtYmFyX19zZWFyY2gtZmllbGQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMCAxLjg3NXJlbSAxLjg3NXJlbSAwO1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbjogLTFweCAwO1xuICAgIG1pbi13aWR0aDogMjIuNXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDFyZW0gNC4wNjI1cmVtIDEuMjVyZW0gMS44NzVyZW07IH1cbiAgICAuc2VhcmNoLWJhcl9fc2VhcmNoLWZpZWxkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjMDcyZTQzOyB9XG4gICAgLnNlYXJjaC1iYXJfX3NlYXJjaC1maWVsZDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAgIC5zZWFyY2gtYmFyX19zZWFyY2gtZmllbGQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjMDcyZTQzOyB9XG4gIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjgzO1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNDM3NXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyLjg3NXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLjQzNzVyZW07XG4gICAgdG9wOiAuNDM3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zO1xuICAgIHdpZHRoOiAyLjg3NXJlbTsgfVxuICAgIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDAuNjg3NWVtO1xuICAgICAgaGVpZ2h0OiAwLjY4NzVlbTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wLjMxMjVlbSAtNDcuNjI1ZW07XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNyk7IH1cbiAgICAgIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNSAtNzYycHg7IH1cbiAgICAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDcyZTQzOyB9XG4gIC5zZWFyY2gtYmFyX19jYXRlZ29yaWVzLXNjcm9sbGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNlYXJjaC1iYXJfX2NhdGVnb3JpZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbWFyZ2luOiAxLjE4NzVyZW0gMCAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnNlYXJjaC1iYXJfX2NhdGVnb3J5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMi42MjVyZW07IH1cbiAgICAuc2VhcmNoLWJhcl9fY2F0ZWdvcnk6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnNlYXJjaC1iYXJfX2NhdGVnb3J5LWxpbmsge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnNlYXJjaC1iYXJfX2NhdGVnb3J5LWxpbmstLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgY29sb3I6ICMwNzJlNDM7IH1cblxuLmJsb2ctZ3JheS1ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmNWY5O1xuICBtYXJnaW46IDAgYXV0byAyLjU2MjVyZW07XG4gIG1heC13aWR0aDogNzcuNXJlbTtcbiAgcGFkZGluZzogMS41cmVtIDAgMi42ODc1cmVtOyB9XG4gIC5ibG9nLWdyYXktYm94LS1lZGl0b3JzLXBpY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTA4LCAxNjAsIDIwMSwgMC4xKTtcbiAgICBtYXJnaW46IDIuNTYyNXJlbSBhdXRvIDA7IH1cbiAgLmJsb2ctZ3JheS1ib3gtLXBvcHVsYXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjE4NzVyZW07IH1cblxuLmJsb2ctc2VjdGlvbi10b3Age1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZy1ib3R0b206IC4yNXJlbTsgfVxuICAuYmxvZy1zZWN0aW9uLXRvcC0tZXZlbnRzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgLmJsb2ctc2VjdGlvbi10b3AtLWV2ZW50cy1maWx0ZXJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5ibG9nLXNlY3Rpb24tdG9wLS1ncmF5LWJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuNjg3NXJlbTsgfVxuICAuYmxvZy1zZWN0aW9uLXRvcC0tcG9wdWxhciB7XG4gICAgcGFkZGluZy1ib3R0b206IC42ODc1cmVtOyB9XG4gIC5ibG9nLXNlY3Rpb24tdG9wLS1ibHVlLWJvcmRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwNzJlNDM7IH1cbiAgLmJsb2ctc2VjdGlvbi10b3AtLW1lZGl1bS1tYXJnaW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgLmJsb2ctc2VjdGlvbi10b3AtLXNtYWxsLW1hcmdpbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4xODc1cmVtOyB9XG4gIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZSB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmJsb2ctc2VjdGlvbi10b3BfX2xpbmsge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4ubmV3cy1zZWN0aW9uIHtcbiAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gIHBhZGRpbmctdG9wOiA0LjEyNHJlbTsgfVxuICAubmV3cy1zZWN0aW9uX190b3Age1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjkzNzVyZW07IH1cbiAgLm5ld3Mtc2VjdGlvbl9fdG9wLW5ld3MgLmxpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIC5uZXdzLXNlY3Rpb25fX3NpZGUtZXZlbnRzLXNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDMuNDM3NXJlbTsgfVxuICAubmV3cy1zZWN0aW9uX19ib3R0b20tbmV3cyB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuNTYyNXJlbTsgfVxuICAubmV3cy1zZWN0aW9uX19ib3R0b20tbmV3cy1jb2x1bW4gLmxpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIC5uZXdzLXNlY3Rpb25fX3BvcHVsYXIgLmxpc3QtaXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAubmV3cy1zZWN0aW9uLS1yZWxhdGVkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMy43NXJlbTtcbiAgICBwYWRkaW5nLXRvcDogNC44NzVyZW07IH1cblxuLmxvYWQtbW9yZS1wb3N0cyB7XG4gIGhlaWdodDogMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMjUwbXMsIG9wYWNpdHkgMjUwbXMsIHZpc2liaWxpdHkgMjUwbXM7IH1cbiAgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uIHtcbiAgICBjb2xvcjogIzczODY4NDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zLCB2aXNiaWxpdHkgMTUwbXM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSB7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcbiAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IGxvYWRpbmctcm9hdGU7XG4gICAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC42ODc1cmVtO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNDglIDQyJTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB3aWR0aDogMS4zMTI1ZW07XG4gICAgICBoZWlnaHQ6IDEuMzc1ZW07XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMC4zMTI1ZW0gLTE2LjMxMjVlbTsgfVxuICAgICAgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjFweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUgLTI2MXB4OyB9XG4gICAgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uLS1sb2FkaW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgICAubG9hZC1tb3JlLXBvc3RzX19idXR0b24tLWxvYWRpbmc6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzczODY4NDsgfVxuICAgICAgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uLS1sb2FkaW5nOmJlZm9yZSB7XG4gICAgICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyB9XG4gIC5sb2FkLW1vcmUtcG9zdHMtLWhpZGRlbiB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBrZXlmcmFtZXMgbG9hZGluZy1yb2F0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzguMjVyZW0pIHtcbiAgLnNlYXJjaC1iYXJfX2Zvcm0ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMi4zMTI1cmVtOyB9XG4gIC5ibG9nLWdyYXktYm94LS1wb3B1bGFyIHtcbiAgICBtYXJnaW4tbGVmdDogLTIuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMi4yNXJlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMi4yNXJlbSAxLjE4NzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3Mi41cmVtKSBhbmQgKG1pbi13aWR0aDogNjByZW0pIHtcbiAgLnNlYXJjaC1iYXJfX3NlYXJjaC1maWVsZCB7XG4gICAgbWluLXdpZHRoOiAxOHJlbTsgfVxuICAuc2VhcmNoLWJhcl9fY2F0ZWdvcnkge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAuYmxvZy10b3BfX2ZlYXR1cmVkIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVyZW0pIHtcbiAgLnNlYXJjaC1iYXJfX3NlYXJjaC1maWVsZCB7XG4gICAgbWluLXdpZHRoOiAxNXJlbTsgfVxuICAubmV3cy1zZWN0aW9uX19ldmVudHMtY29sdW1uIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NXJlbSkgYW5kIChtaW4td2lkdGg6IDQ4cmVtKSB7XG4gIC5zZWFyY2gtYmFyX19jYXRlZ29yaWVzIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMS4zNzVyZW07IH1cbiAgLnNlYXJjaC1iYXJfX2NhdGVnb3J5IHtcbiAgICBtYXJnaW4tbGVmdDogLjg3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLmJsb2ctdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAgIC5ibG9nLXRvcF9fcm93ID4gLmNvbHVtbnMge1xuICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgICAgIC5ibG9nLXRvcF9fcm93ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgLmJsb2ctdG9wX19mZWF0dXJlZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmJsb2ctdG9wX19mZWF0dXJlZC10aXRsZSB7XG4gICAgICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgICAuYmxvZy10b3BfX2ZlYXR1cmVkLWNhdGVnb3J5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgICAuYmxvZy10b3BfX2ZlYXR1cmVkLWV4Y2VycHQge1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgIG1hcmdpbjogMCAwIDFyZW07IH1cbiAgICAuYmxvZy10b3BfX2VkaXRvcnMge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIG1hcmdpbjogMCAtMXJlbTtcbiAgICAgIHBhZGRpbmc6IDEuNzVyZW0gMXJlbSAyLjI1cmVtO1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuYmxvZy10b3BfX2VkaXRvcnMtdGl0bGUge1xuICAgICAgY29sb3I6ICMwNzJlNDM7XG4gICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgIHBhZGRpbmc6IDAgMCAuMzc1cmVtOyB9XG4gICAgLmJsb2ctdG9wX19lZGl0b3JzLWFydGljbGVzIC5saXN0LWl0ZW1fX3JvdyAuY29sdW1ucyB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmJsb2ctdG9wX19lZGl0b3JzLWFydGljbGVzIC5saXN0LWl0ZW1fX3JvdyAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuYmxvZy10b3BfX2VkaXRvcnMtYXJ0aWNsZXMgLmxpc3QtaXRlbV9fdGl0bGUtbGluayB7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAgIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX19jb250ZW50ID4gcCB7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAgIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX19yZWFkLW1vcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5ibG9nLXRvcF9fZWRpdG9ycy1hcnRpY2xlcyAubGlzdC1pdGVtX190aXRsZS1kYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNlYXJjaC1iYXIge1xuICAgIGJvcmRlcjogMDsgfVxuICAgIC5zZWFyY2gtYmFyX19mb3JtIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycmVtKTsgfVxuICAgIC5zZWFyY2gtYmFyX19zZWFyY2gtZmllbGQge1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuc2VhcmNoLWJhcl9fY2F0ZWdvcmllcy1zY3JvbGxlciB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMnJlbSk7IH1cbiAgICAuc2VhcmNoLWJhcl9fY2F0ZWdvcmllcyB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubmV3cy1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAgIC5uZXdzLXNlY3Rpb25fX2V2ZW50cyAubGlzdC1pdGVtX19yb3cgLmNvbHVtbnM6Zmlyc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDI5LjE2JTsgfVxuICAgIC5uZXdzLXNlY3Rpb25fX2V2ZW50cyAubGlzdC1pdGVtX19yb3cgLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogNC4xOCU7XG4gICAgICB3aWR0aDogNjYuNjYlOyB9XG4gIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH1cbiAgLmJsb2ctc2VjdGlvbi10b3BfX2xpbmsge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH1cbiAgLmJsb2ctZ3JheS1ib3gtLXBvcHVsYXIge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI2LjE4NzVyZW0pIHtcbiAgLm5ld3Mtc2VjdGlvbl9fcG9wdWxhciAubGlzdC1pdGVtIHtcbiAgICBwYWRkaW5nOiAuNzVyZW0gMDsgfVxuICAgIC5uZXdzLXNlY3Rpb25fX3BvcHVsYXIgLmxpc3QtaXRlbSAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm5ld3Mtc2VjdGlvbl9fcG9wdWxhciAubGlzdC1pdGVtX19yZWFkLW1vcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLmNhdGVnb3J5LXRvcCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtO1xuICBwYWRkaW5nLXRvcDogNC41NjI1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNhdGVnb3J5LXRvcC0tc2VhcmNoIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi41NjI1cmVtOyB9XG4gIC5jYXRlZ29yeS10b3BfX3N2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogLTcuNzVyZW07IH1cbiAgLmNhdGVnb3J5LXRvcF9fdG9wIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY2F0ZWdvcnktdG9wX190b3AgcCB7XG4gICAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgICAgbWFyZ2luOiAxLjA2MjVyZW0gMCAwOyB9XG4gICAgICAuY2F0ZWdvcnktdG9wX190b3AgcC5zZWFyY2gge1xuICAgICAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7IH1cbiAgLmNhdGVnb3J5LXRvcF9fdGl0bGUge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY2F0ZWdvcnktdG9wX19zbWFsbC1jb2x1bW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAgIC5jYXRlZ29yeS10b3BfX3NtYWxsLWNvbHVtbiAubGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY2F0ZWdvcnktdG9wX19zbWFsbC1jb2x1bW46bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhdGVnb3J5LXRvcF9fZWRpdG9ycy1waWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmNhdGVnb3J5LWl0ZW1fX2ltYWdlLWxpbmsge1xuICBib3JkZXI6IHNvbGlkIDNweCAjZmZmO1xuICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuOTM3NXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNhdGVnb3J5LWl0ZW1fX2ltYWdlLWxpbmsgaW1nIHtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4uY2F0ZWdvcnktaXRlbV9faW1hZ2UtZGF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IC4zNzVyZW07XG4gIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC42MjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyLjI1cmVtO1xuICBsZWZ0OiAxLjI1cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMS4yNXJlbTtcbiAgd2lkdGg6IDIuMjVyZW07IH1cblxuLmNhdGVnb3J5LWl0ZW1fX2ltYWdlLWRhdGUtbW9udGgge1xuICBiYWNrZ3JvdW5kOiAjMDcyZTQzO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImZ1dHVyYS1wdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IC41cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAuNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uY2F0ZWdvcnktaXRlbV9faW1hZ2UtZGF0ZS1kYXkge1xuICBjb2xvcjogI2YwM2UzOTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImZ1dHVyYS1wdFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmNhdGVnb3J5LWl0ZW1fX3RpdGxlIHtcbiAgbWFyZ2luOiAuODEyNXJlbSAwOyB9XG5cbi5jYXRlZ29yeS1pdGVtX190aXRsZS1saW5rIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY2F0ZWdvcnktaXRlbV9fdGl0bGUtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICMwMDgyODM7IH1cblxuLmNhdGVnb3J5LWl0ZW1fX2RhdGUge1xuICBjb2xvcjogIzczODY4NDtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAuMDEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cblxuLmNhdGVnb3J5LWl0ZW1fX2V4Y2VycHQge1xuICBjb2xvcjogIzA3MmU0MztcbiAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAxLjE4NzVyZW0gMCAwOyB9XG5cbi5jYXRlZ29yeS1pdGVtOmhvdmVyIC5jYXRlZ29yeS1pdGVtX19pbWFnZS1saW5rIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4ubmV3cy1zZWN0aW9uX19ldmVudC1maWx0ZXJzLWFsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICBwYWRkaW5nOiAuNXJlbSAuNjI1cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm5ld3Mtc2VjdGlvbl9fYWNjb3JkaW9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tdGl0bGUge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDcyZTQzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMxMjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5uZXdzLXNlY3Rpb25fX2FjY29yZGlvbi10aXRsZSAueWVhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogLjVyZW0gLjYyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTsgfVxuICAubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tdGl0bGUgLmFycm93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxcmVtIEZvbnRBd2Vzb21lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMi4zMTI1cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDI1MG1zIGxpbmVhcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAyLjMxMjVyZW07XG4gICAgei1pbmRleDogMjsgfVxuICAgIC5uZXdzLXNlY3Rpb25fX2FjY29yZGlvbi10aXRsZSAuYXJyb3c6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYxMDcnOyB9XG4gICAgLm5ld3Mtc2VjdGlvbl9fYWNjb3JkaW9uLXRpdGxlIC5hcnJvdzpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjBmNWY5OyB9XG4gIC5uZXdzLXNlY3Rpb25fX2FjY29yZGlvbi10aXRsZTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm5ld3Mtc2VjdGlvbl9fYWNjb3JkaW9uLXRpdGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMDcyZTQzOyB9XG4gIC5uZXdzLXNlY3Rpb25fX2FjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tdGl0bGUuY3VycmVudC15ZWFyIHtcbiAgICBjb2xvcjogIzA3MmU0MzsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmMGY1Zjk7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tbW9udGhzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tbW9udGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsgfVxuICAubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tbW9udGg6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24tbW9udGgtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgcGFkZGluZzogLjQzNzVyZW0gLjYyNXJlbSAuNjI1cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLm5ld3Mtc2VjdGlvbl9fYWNjb3JkaW9uLW1vbnRoLWxpbmsuY3VycmVudCB7XG4gICAgY29sb3I6ICMwNzJlNDM7IH1cblxuLm5ld3Mtc2VjdGlvbl9fYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tdGl0bGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzA3MmU0MzsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24taXRlbS5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAubmV3cy1zZWN0aW9uX19hY2NvcmRpb24taXRlbS5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlIC5hcnJvdyB7XG4gICAgYmFja2dyb3VuZDogI2YwZjVmOTsgfVxuICAgIC5uZXdzLXNlY3Rpb25fX2FjY29yZGlvbi1pdGVtLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGUgLmFycm93OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFxmMTA2JzsgfVxuXG4ubmV3cy1zZWN0aW9uX19hY2NvcmRpb24taXRlbS5pcy1hY3RpdmU6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tdGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwOyB9XG5cbi5uZXdzLXNlY3Rpb25fX2FjY29yZGlvbi1pdGVtLmlzLWFjdGl2ZTpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwNzJlNDM7IH1cblxuLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIG1hcmdpbi1yaWdodDogLjYyNXJlbTtcbiAgbWFyZ2luLXRvcDogLS4xMjVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxLjMxMjVlbTtcbiAgaGVpZ2h0OiAxLjI1ZW07XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0wLjMxMjVlbSAtMC4zMTI1ZW07IH1cbiAgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMTlweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNSAtNTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3OC4yNXJlbSkge1xuICAuYmxvZy1ncmF5LWJveC0tZWRpdG9ycy1waWNrIHtcbiAgICBtYXJnaW4tbGVmdDogLTEuODc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuODc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS44NzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAuY2F0ZWdvcnktaXRlbV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmNhdGVnb3J5LWl0ZW1fX2V4Y2VycHQge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NXJlbSkge1xuICAuY2F0ZWdvcnktaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLmNhdGVnb3J5LXRvcCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuODc1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAyLjM3NXJlbTsgfVxuICAgIC5jYXRlZ29yeS10b3BfX3RvcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5jYXRlZ29yeS10b3BfX3RvcCBwIHtcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtOyB9XG4gICAgLmNhdGVnb3J5LXRvcF9fc21hbGwtY29sdW1uIC5saXN0LWl0ZW1fX3JvdyAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMjkuMTYlOyB9XG4gICAgLmNhdGVnb3J5LXRvcF9fc21hbGwtY29sdW1uIC5saXN0LWl0ZW1fX3JvdyAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0LjE4JTtcbiAgICAgIHdpZHRoOiA2Ni42NiU7IH1cbiAgICAuY2F0ZWdvcnktdG9wX19lZGl0b3JzLXBpY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTEuODc1cmVtOyB9XG4gIC5ibG9nLWdyYXktYm94LS1lZGl0b3JzLXBpY2sge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5uZXdzLXNlY3Rpb25fX2V2ZW50cy1maWx0ZXJzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjYuMTg3NXJlbSkge1xuICAuY2F0ZWdvcnktaXRlbSAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjM3NXJlbTsgfVxuICAuY2F0ZWdvcnktaXRlbV9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IC4zNzVyZW07IH1cbiAgLmNhdGVnb3J5LWl0ZW1fX2V4Y2VycHQge1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAuNzVyZW07IH1cbiAgLmNhdGVnb3J5LXRvcF9fc21hbGwtY29sdW1uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjYyNXJlbTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnBvc3QtdG9wIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wb3N0LXRvcC0taGFzLXZpZGVvIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5wb3N0LXRvcF9fdmlkZW8tYnRuIHtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDhyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDU1MG1zIGVhc2Utb3V0LCBvcGFjaXR5IDU1MG1zLCB2aXNpYmlsaXR5IDU1MG1zOyB9XG4gICAgLnBvc3QtdG9wX192aWRlby1idG4uc2hvd2luZy12aWRlbyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYuODc1cmVtKTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAucG9zdC10b3BfX292ZXJsYXkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTcsIDkwLCAxMjEsIDAuMjUpLCAjMDcyZTQzKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wb3N0LXRvcF9fdmlkZW8td3JhcHBlciB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTUwbXMgZWFzZS1vdXQsIG9wYWNpdHkgNTUwbXMsIHZpc2liaWxpdHkgNTUwbXM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICAucG9zdC10b3BfX3ZpZGVvLXdyYXBwZXIgcCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAucG9zdC10b3BfX3ZpZGVvLXdyYXBwZXIgaWZyYW1lIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTByZW0pOyB9XG4gICAgLnBvc3QtdG9wX192aWRlby13cmFwcGVyLnNob3dpbmctdmlkZW8ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5wb3N0LXRvcF9fdmlkZW8tY2xvc2Uge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgb3BhY2l0eTogLjc7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC43NXJlbTtcbiAgICB0b3A6IC43NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zO1xuICAgIHdpZHRoOiAycmVtOyB9XG4gICAgLnBvc3QtdG9wX192aWRlby1jbG9zZTpiZWZvcmUsIC5wb3N0LXRvcF9fdmlkZW8tY2xvc2U6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgd2lkdGg6IDFweDsgfVxuICAgIC5wb3N0LXRvcF9fdmlkZW8tY2xvc2U6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAucG9zdC10b3BfX3ZpZGVvLWNsb3NlOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAgIC5wb3N0LXRvcF9fdmlkZW8tY2xvc2U6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAucG9zdC10b3BfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHJlbTtcbiAgICBwYWRkaW5nLXRvcDogMjByZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1NTBtcyBlYXNlLW91dCwgb3BhY2l0eSA1NTBtcywgdmlzaWJpbGl0eSA1NTBtczsgfVxuICAgIC5wb3N0LXRvcF9fY29udGVudC0tZXZlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDIxLjc1cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDE3cmVtOyB9XG4gICAgLnBvc3QtdG9wX19jb250ZW50LS1wcmVzcy1yZWxlYXNlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDguNjI1cmVtOyB9XG4gICAgLnBvc3QtdG9wX19jb250ZW50LS1yZXBvcnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDguMTI1cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDguNzVyZW07IH1cbiAgICAucG9zdC10b3BfX2NvbnRlbnQtLWFib3V0IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgICAucG9zdC10b3BfX2NvbnRlbnQuc2hvd2luZy12aWRlbyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYuODc1cmVtKTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAucG9zdC10b3BfX2NvbnRlbnQtdG9wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjYyNXJlbTsgfVxuICAgIC5wb3N0LXRvcF9fY29udGVudC10b3AtLWV2ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnBvc3QtdG9wX19jYXRlZ29yeSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICAgIG1hcmdpbi1ib3R0b206IC4zNzVyZW07IH1cbiAgICAucG9zdC10b3BfX2NhdGVnb3J5LS1ldmVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5wb3N0LXRvcF9fY2F0ZWdvcnktbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMS44NzVyZW07XG4gICAgbWFyZ2luLXRvcDogLjc1cmVtOyB9XG4gIC5wb3N0LXRvcF9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wb3N0LXRvcF9fdGl0bGUtLWV2ZW50IHtcbiAgICAgIG1hcmdpbjogLS4zMTI1cmVtIDAgMDsgfVxuICAucG9zdC10b3BfX3RpdGxlLXdyYXBwZXIge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDI2LjI1ZW0pIHtcbiAgICAgIC5wb3N0LXRvcF9fdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyODBweCk7IH0gfVxuICAucG9zdC10b3BfX2V2ZW50LWRhdGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogLjM3NXJlbTtcbiAgICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuNjI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDQuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMS4xODc1cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDUuMDYyNXJlbTsgfVxuICAucG9zdC10b3BfX2V2ZW50LWRhdGUtbW9udGgge1xuICAgIGJhY2tncm91bmQ6ICMwNzJlNDM7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IFwiZnV0dXJhLXB0XCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGhlaWdodDogMS42MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5wb3N0LXRvcF9fZXZlbnQtZGF0ZS1kYXkge1xuICAgIGNvbG9yOiAjZjAzZTM5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcImZ1dHVyYS1wdFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5wb3N0LXRvcF9fYXV0aG9yIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtOyB9XG4gIC5wb3N0LXRvcF9fYXV0aG9yLWltYWdlIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjOTc5Nzk3O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiAzcmVtOyB9XG4gIC5wb3N0LXRvcF9fYXV0aG9yLW5hbWUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICBtYXJnaW4tbGVmdDogLjYyNXJlbTsgfVxuICAucG9zdC10b3BfX2RhdGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICBsaW5lLWhlaWdodDogM3JlbTsgfVxuICAucG9zdC10b3BfX3NoYXJlLWJ1dHRvbnMge1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nLXRvcDogLjM3NXJlbTsgfVxuICAgIC5wb3N0LXRvcF9fc2hhcmUtYnV0dG9ucy0tZXZlbnQge1xuICAgICAgcGFkZGluZy10b3A6IDEuNjg3NXJlbTsgfVxuICAucG9zdC10b3BfX3NoYXJlLWJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zLCBib3JkZXItY29sb3IgMjAwbXMsIGJhY2tncm91bmQgMjAwbXM7XG4gICAgd2lkdGg6IDIuMjVyZW07IH1cbiAgICAucG9zdC10b3BfX3NoYXJlLWJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgICAgY29sb3I6ICMwNzJlNDM7IH1cbiAgLnBvc3QtdG9wX19zaGFyZS1pY29uLCAucG9zdC10b3BfX3NoYXJlLWljb24uZmEge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07IH1cblxuLnBvc3QtY29udGVudC1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogLTYuODc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IG1hcmdpbi10b3AgNTUwbXMgZWFzZS1vdXQ7XG4gIHotaW5kZXg6IDI7IH1cbiAgLnBvc3QtY29udGVudC1zZWN0aW9uLS1ldmVudCB7XG4gICAgbWFyZ2luLXRvcDogLTE4Ljc1cmVtOyB9XG4gIC5wb3N0LWNvbnRlbnQtc2VjdGlvbi0td2lkZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBtYXJnaW46IC01LjI1cmVtIGF1dG8gMDtcbiAgICBtYXgtd2lkdGg6IDgwLjYyNXJlbTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucG9zdC1jb250ZW50LXNlY3Rpb24uc2hvd2luZy12aWRlbyB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG4ucG9zdC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIHBhZGRpbmc6IDJyZW0gNi4yNXJlbSAzLjM3NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wb3N0LWNvbnRlbnQgcCxcbiAgLnBvc3QtY29udGVudCB1bCxcbiAgLnBvc3QtY29udGVudCBvbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTVlbTtcbiAgICBsaW5lLWhlaWdodDogMS44ZW07IH1cbiAgICAucG9zdC1jb250ZW50IHAgYSxcbiAgICAucG9zdC1jb250ZW50IHVsIGEsXG4gICAgLnBvc3QtY29udGVudCBvbCBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLnBvc3QtY29udGVudCBwIHtcbiAgICBtYXJnaW46IDAgMCAxLjhlbTsgfVxuICAgIC5wb3N0LWNvbnRlbnQgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgbWFyZ2luOiAwIDAgMi40Mzc1cmVtOyB9XG4gICAgICAucG9zdC1jb250ZW50IHA6Zmlyc3QtY2hpbGQgKyBwIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7IH1cbiAgLnBvc3QtY29udGVudCBhICsgZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAucG9zdC1jb250ZW50IHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gICAgbWFyZ2luOiAwIC02LjI1cmVtIDIuODc1cmVtO1xuICAgIHBhZGRpbmc6IDNyZW0gNi4yNXJlbSAzcmVtIDcuNXJlbTsgfVxuICAgIC5wb3N0LWNvbnRlbnQgdWwgbGkge1xuICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTsgfVxuICAucG9zdC1jb250ZW50ICo6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwODI4MztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAucG9zdC1jb250ZW50X19yZWdpc3RyYXRpb24tYm94IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICBwYWRkaW5nOiAxLjA2MjVyZW0gMCAxLjE4NzVyZW07IH1cbiAgLnBvc3QtY29udGVudF9fcmVnaXN0cmF0aW9uLWluZm8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMi45Mzc1cmVtO1xuICAgIG1hcmdpbjogMCAxLjVyZW0gMCAgMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5wb3N0LWNvbnRlbnQtLWV2ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0uNjI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjQzNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogLjYyNXJlbTsgfVxuICAgIC5wb3N0LWNvbnRlbnQtLWV2ZW50IHA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gICAgICAucG9zdC1jb250ZW50LS1ldmVudCBwOmZpcnN0LWNoaWxkICsgcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjE4NzVyZW07IH1cbiAgICAucG9zdC1jb250ZW50LS1ldmVudCBwLnJlZ2lzdHJhdGlvbi1pbmZvIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjkzNzVyZW07XG4gICAgICBtYXJnaW46IDAgMS41cmVtIDAgMDsgfVxuICAgIC5wb3N0LWNvbnRlbnQtLWV2ZW50IHVsIHtcbiAgICAgIG1hcmdpbjogMCAyLjI1cmVtIDIuODc1cmVtIC0zLjY4NzVyZW07XG4gICAgICBwYWRkaW5nOiAzcmVtIDIuMjVyZW0gM3JlbSA0LjkzNzVyZW07IH1cbiAgLnBvc3QtY29udGVudC0td2lkZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLnBvc3QtY29udGVudC0tcHJlc3MtcmVsZWFzZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICAucG9zdC1jb250ZW50LS1wcmVzcy1yZWxlYXNlIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gICAgICAucG9zdC1jb250ZW50LS1wcmVzcy1yZWxlYXNlIHA6Zmlyc3QtY2hpbGQgKyBwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTsgfVxuICAgIC5wb3N0LWNvbnRlbnQtLXByZXNzLXJlbGVhc2UgdWwge1xuICAgICAgbWFyZ2luOiAwIC0zLjc1cmVtIDIuODc1cmVtO1xuICAgICAgcGFkZGluZzogM3JlbSAzLjc1cmVtOyB9XG4gIC5wb3N0LWNvbnRlbnQtLXdoaXRlLWxpc3RzIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nOiAwIDAgMCAxLjVyZW07IH1cblxuLmJsb2NrcXVvdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMCAtMy43NXJlbSAxLjgxMjVyZW07XG4gIHBhZGRpbmc6IDcuMTgyNXJlbSAzLjc1cmVtIDQuMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5ibG9ja3F1b3RlOmJlZm9yZSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbG9yOiAjYjRiNjNjO1xuICAgIGNvbnRlbnQ6ICfigJ4nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiA1cmVtO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB3aWR0aDogMi40Mzc1cmVtOyB9XG4gIC5ibG9ja3F1b3RlX19mb290ZXIge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBtYXJnaW4tdG9wOiAyLjYyNXJlbTsgfVxuICAuYmxvY2txdW90ZV9fYXV0aG9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07IH1cbiAgLmJsb2NrcXVvdGVfX3Bvc2l0aW9uIHtcbiAgICBjb2xvcjogIzczODY4NDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW46IC4zNzVyZW0gMCAwOyB9XG4gIC5ibG9ja3F1b3RlX19pbm5lciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAzOHJlbTsgfVxuXG4ucG9zdC1zaWRlYmFyLWNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucG9zdC1zaWRlYmFyLWNvbHVtbl9fYnV0dG9uLXdyYXBwZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDcyZTQzO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gICAgcGFkZGluZy10b3A6IDEuMjVyZW07IH1cbiAgLnBvc3Qtc2lkZWJhci1jb2x1bW5fX2J1dHRvbiBzcGFuLmhpZGUtbW9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucG9zdC1zaWRlYmFyLWNvbHVtbl9fYnV0dG9uLmFjdGl2ZSBzcGFuLnNob3ctbW9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucG9zdC1zaWRlYmFyLWNvbHVtbl9fYnV0dG9uLmFjdGl2ZSBzcGFuLmhpZGUtbW9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5wb3N0LXNpZGViYXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXJnaW4tbGVmdDogLS42MjVyZW07XG4gIHBhZGRpbmc6IDJyZW0gMi41cmVtIDAgLjYyNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAucG9zdC1zaWRlYmFyLS1wcmVzcy1yZWxlYXNlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5wb3N0LXNpZGViYXJfX2V2ZW50LWRldGFpbHMge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS43NXJlbTsgfVxuICAucG9zdC1zaWRlYmFyX19ldmVudC1kYXRlIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMCAwIC43NXJlbTsgfVxuICAucG9zdC1zaWRlYmFyX19ldmVudC1wbGFjZSB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgICAucG9zdC1zaWRlYmFyX19ldmVudC1wbGFjZSBzcGFuIHtcbiAgICAgIGNvbG9yOiAjMDA4MjgzO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAucG9zdC1zaWRlYmFyX19ldmVudC10aW1lIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wb3N0LXNpZGViYXJfX2V2ZW50LXRpbWUgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICAgIG1pbi13aWR0aDogMi41cmVtOyB9XG4gIC5wb3N0LXNpZGViYXJfX3JlZ2lzdHJhdGlvbiB7XG4gICAgbWFyZ2luOiAwIDAgMi43NXJlbTsgfVxuICAucG9zdC1zaWRlYmFyX19yZWdpc3RyYXRpb24tdGV4dCB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC13cmFwcGVyIHtcbiAgICBtYXJnaW46IDAgMCAyLjY4NzVyZW07IH1cbiAgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBtYXJnaW4tcmlnaHQ6IC41NjI1cmVtO1xuICAgIG1hcmdpbi10b3A6IC0uMTI1cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDAuODEyNWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wLjMxMjVlbSAtNDYuMDYyNWVtOyB9XG4gICAgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUge1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNSAtNzM3cHg7IH1cbiAgLnBvc3Qtc2lkZWJhcl9fbWVkaWEtcmVzb3VyY2VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3OSwgMTgyLCA2MSwgMC4xKTtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjI1cmVtIDIuNjI1cmVtOyB9XG4gIC5wb3N0LXNpZGViYXJfX21lZGlhLXJlc291cmNlcy1kZXNjIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMCAwIDEuODc1cmVtOyB9XG4gIC5wb3N0LXNpZGViYXJfX21lZGlhLXJlc291cmNlcy1zdWJ0aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiNGI2M2M7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW46IDAgMCAuNzVyZW07XG4gICAgcGFkZGluZzogMCAwIC4zNzVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAucG9zdC1zaWRlYmFyX19tZWRpYS1yZXNvdXJjZXMtaW5uZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07IH1cbiAgLnBvc3Qtc2lkZWJhcl9fa2V5LXF1b3RlLXdyYXBwZXIge1xuICAgIG1hcmdpbjogMCAwIDIuODc1cmVtOyB9XG4gICAgLnBvc3Qtc2lkZWJhcl9fa2V5LXF1b3RlLXdyYXBwZXI6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgLnBvc3Qtc2lkZWJhcl9fa2V5LXF1b3RlIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgbWFyZ2luOiAwIDAgMS4xODc1cmVtOyB9XG5cbi5yZWxhdGVkLXJlcG9ydF9faW1hZ2UtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgMCAxLjE4NzVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlbGF0ZWQtcmVwb3J0X19pbWFnZS1saW5rIGltZyB7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2UtaW47IH1cblxuLnJlbGF0ZWQtcmVwb3J0X190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IC4yNXJlbTsgfVxuXG4ucmVsYXRlZC1yZXBvcnRfX3RpdGxlLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnJlbGF0ZWQtcmVwb3J0X19leGNlcnB0IHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMDsgfVxuXG4ucmVsYXRlZC1yZXBvcnQ6aG92ZXIgLnJlbGF0ZWQtcmVwb3J0X19pbWFnZS1saW5rIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4uc3BlYWtlci1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NwZWFrZXItYmcuanBnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDcuODc1cmVtO1xuICBwYWRkaW5nLXRvcDogNi4zNzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc3BlYWtlci1zZWN0aW9uX19vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEzMCwgMTMxLCAwLjUpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNwZWFrZXItc2VjdGlvbl9fcm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNwZWFrZXItc2VjdGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEuMzc1cmVtOyB9XG4gIC5zcGVha2VyLXNlY3Rpb25fX3dpZGdldCBwIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbTsgfVxuXG4uc2hhcmVsaW5lcy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIHBhZGRpbmctYm90dG9tOiA0Ljg3NXJlbTtcbiAgcGFkZGluZy10b3A6IDQuMjVyZW07IH1cbiAgLnNoYXJlbGluZXMtc2VjdGlvbl9fc2hhcmVsaW5lIHtcbiAgICBwYWRkaW5nOiAxLjEyNXJlbSAwOyB9XG4gIC5zaGFyZWxpbmVzLXNlY3Rpb25fX3NoYXJlbGluZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMDsgfVxuICAuc2hhcmVsaW5lcy1zZWN0aW9uX19idXR0b24ge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICM5Nzk3OTc7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAyLjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMsIGJvcmRlci1jb2xvciAyMDBtcywgYmFja2dyb3VuZC1jb2xvciAyMDBtcztcbiAgICB3aWR0aDogMi4yNXJlbTsgfVxuICAgIC5zaGFyZWxpbmVzLXNlY3Rpb25fX2J1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5zaGFyZWxpbmVzLXNlY3Rpb25fX2J1dHRvbjpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLnNoYXJlbGluZXMtc2VjdGlvbl9fYnV0dG9uOmhvdmVyLmZhY2Vib29rLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiNTk5ODtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2I1OTk4OyB9XG4gICAgICAuc2hhcmVsaW5lcy1zZWN0aW9uX19idXR0b246aG92ZXIudHdpdHRlci1jb2xvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NWFjZWU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzU1YWNlZTsgfVxuICAgICAgLnNoYXJlbGluZXMtc2VjdGlvbl9fYnV0dG9uOmhvdmVyLmxpbmtlZGluLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JiNTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3YmI1OyB9XG4gIC5zaGFyZWxpbmVzLXNlY3Rpb25fX2ljb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjEyNXJlbTsgfVxuXG4uYXV0aG9yLXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICBwYWRkaW5nLWJvdHRvbTogNS42MjVyZW07XG4gIHBhZGRpbmctdG9wOiA0LjI1cmVtOyB9XG4gIC5hdXRob3Itc2VjdGlvbl9fdG9wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgLmF1dGhvci1zZWN0aW9uX19waG90byB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiA3LjVyZW07XG4gICAgd2lkdGg6IDcuNXJlbTsgfVxuICAgIC5hdXRob3Itc2VjdGlvbl9fcGhvdG8tLWNvbXBhbnkge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiA2LjQzNzVyZW07IH1cbiAgLmF1dGhvci1zZWN0aW9uX19jb250ZW50LWNvbHVtbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjkzNzVyZW07XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDcuNXJlbSk7IH1cbiAgICAuYXV0aG9yLXNlY3Rpb25fX2NvbnRlbnQtY29sdW1uLS1mdWxsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmF1dGhvci1zZWN0aW9uX19jb250ZW50LWNvbHVtbi0tY29tcGFueSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNi40Mzc1cmVtKTsgfVxuICAuYXV0aG9yLXNlY3Rpb25fX2NvbnRlbnQtY29sdW1uLXRvcCB7XG4gICAgcGFkZGluZzogLjVyZW0gMCAxcmVtOyB9XG4gIC5hdXRob3Itc2VjdGlvbl9fbmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDsgfVxuICAuYXV0aG9yLXNlY3Rpb25fX3Bvc2l0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gIC5hdXRob3Itc2VjdGlvbiBwIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMDsgfVxuXG4uc2hhcmUtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEuNTYyNXJlbTtcbiAgYm94LXNoYWRvdzogMCAwLjMxMjVyZW0gMC45Mzc1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zLCB2aXNpYmlsaXR5IDE1MG1zO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5zaGFyZS10b29sdGlwOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDhweCAxMHB4IDA7XG4gICAgYm90dG9tOiAtOHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMDsgfVxuICAuc2hhcmUtdG9vbHRpcF9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTsgfVxuICAgIC5zaGFyZS10b29sdGlwX19idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnNoYXJlLXRvb2x0aXAtLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4My4yNXJlbSkge1xuICAuYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjEyNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1cmVtKSB7XG4gIC5wb3N0LWNvbnRlbnQtLW5leHQtdG8tc2lkZWJhciB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLnBvc3QtY29udGVudC0tbm8tc2lkZWJhciB7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTsgfVxuICAucG9zdC1zaWRlYmFyIC5idXR0b24tLWJpZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAucG9zdC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYuODc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDYuODc1cmVtOyB9XG4gICAgLnBvc3QtY29udGVudC0tbmV4dC10by1zaWRlYmFyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMi4yNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAucG9zdC1jb250ZW50LS1uby1zaWRlYmFyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07IH1cbiAgICAucG9zdC1jb250ZW50LS1ldmVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDExJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDExJTsgfVxuICAgICAgLnBvc3QtY29udGVudC0tZXZlbnQgdWwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjc1cmVtOyB9XG4gIC5wb3N0LXNpZGViYXItY29sdW1uLS1ldmVudCB7XG4gICAgei1pbmRleDogMjsgfVxuICAgIC5wb3N0LXNpZGViYXItY29sdW1uLS1ldmVudCAucG9zdC1zaWRlYmFyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMi42MjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1cmVtKSB7XG4gIC5wb3N0LXRvcF9fY29udGVudC0tZXZlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiA2cmVtO1xuICAgIHBhZGRpbmctdG9wOiAxNHJlbTsgfVxuICAucG9zdC1jb250ZW50LXNlY3Rpb24tLWV2ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5wb3N0LWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMi4yNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtOyB9XG4gICAgLnBvc3QtY29udGVudCB1bCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTIuODc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMi44NzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMuODc1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07IH1cbiAgICAucG9zdC1jb250ZW50LS1ldmVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIC5wb3N0LWNvbnRlbnQtLWV2ZW50IHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yLjg3NXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMi44NzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMy44NzVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuODc1cmVtOyB9XG4gICAgLnBvc3QtY29udGVudC0td2hpdGUtbGlzdHMgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZzogMCAwIDAgMS41cmVtOyB9XG4gIC5wb3N0LXNpZGViYXItY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuODc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuODc1cmVtOyB9XG4gICAgLnBvc3Qtc2lkZWJhci1jb2x1bW5fX2J1dHRvbi13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnBvc3Qtc2lkZWJhci1jb2x1bW4tLWV2ZW50IC5wb3N0LXNpZGViYXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnBvc3Qtc2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nOiAycmVtIDAgMDsgfVxuICAgIC5wb3N0LXNpZGViYXJfX21lZGlhLXJlc291cmNlcyB7XG4gICAgICBtYXJnaW4tbGVmdDogLTIuODc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMi44NzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuODc1cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07IH1cbiAgLmJsb2NrcXVvdGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMi44NzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMi44NzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAyLjg3NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjg3NXJlbTsgfVxuICAucmVsYXRlZC1yZXBvcnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAucmVsYXRlZC1yZXBvcnRfX2ltYWdlLWxpbmsge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTsgfVxuICAgIC5yZWxhdGVkLXJlcG9ydF9fY29udGVudC13cmFwcGVyIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEwcHgpOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICAucG9zdC10b3BfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDhyZW07IH1cbiAgLnBvc3QtdG9wX192aWRlby1idG4ge1xuICAgIHRvcDogMnJlbTsgfVxuICAucG9zdC1jb250ZW50LXNlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnBvc3QtY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbTsgfVxuICAgIC5wb3N0LWNvbnRlbnQgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xLjMxMjVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xLjMxMjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuMzEyNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMzEyNXJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAyLjYyNXJlbTsgfVxuICAgIC5wb3N0LWNvbnRlbnQgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgIG1hcmdpbjogMCAwIDEuMzc1cmVtOyB9XG4gICAgICAucG9zdC1jb250ZW50IHA6Zmlyc3QtY2hpbGQgKyBwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH1cbiAgICAucG9zdC1jb250ZW50LS13aGl0ZS1saXN0cyB1bCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAxLjVyZW07IH1cbiAgLm5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTsgfVxuICAuc2hhcmVsaW5lcy1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9XG4gIC5hdXRob3Itc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgLnBvc3Qtc2lkZWJhci1jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMS4zMTI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMzEyNXJlbTsgfVxuICAucG9zdC1zaWRlYmFyX19tZWRpYS1yZXNvdXJjZXMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjMxMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjMxMjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS4zMTI1cmVtOyB9XG4gIC5ibG9ja3F1b3RlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjMxMjU1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMy4yNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMzEyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjMxMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNi4xODc1cmVtKSB7XG4gIC5wb3N0LXRvcF9fdmlkZW8td3JhcHBlciBpZnJhbWUge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNnJlbSk7XG4gICAgbWFyZ2luOiAzcmVtIDAgMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucG9zdC10b3BfX3ZpZGVvLWNsb3NlIHtcbiAgICB6LWluZGV4OiAxMDsgfVxuICAucG9zdC10b3BfX2NvbnRlbnQtdG9wIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBvc3QtdG9wX19hdXRob3Ige1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAucG9zdC10b3BfX2RhdGUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5wb3N0LXRvcF9fZGF0ZS0tY2VudGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wb3N0LXRvcF9fc2hhcmUtYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnBvc3QtdG9wX19zaGFyZS1idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5wb3N0LXRvcF9fZXZlbnQtZGF0ZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwIGF1dG8gMnJlbTsgfVxuICAucG9zdC10b3BfX3RpdGxlLXdyYXBwZXIge1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC5wb3N0LWNvbnRlbnQgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5wb3N0LWNvbnRlbnRfX3JlZ2lzdHJhdGlvbi1ib3gge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5wb3N0LWNvbnRlbnRfX3JlZ2lzdHJhdGlvbi1ib3ggcCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubmV3c2xldHRlci1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24td2lkZ2V0OmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi4xMjVyZW07IH1cbiAgICAubmV3c2xldHRlci1zZWN0aW9uIC5uZXdzbGV0dGVyLXNlY3Rpb24td2lkZ2V0IC5mb290ZXItbmV3c2xldHRlci1zZWN0aW9uX19idXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNoYXJlbGluZXMtc2VjdGlvbiAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUsXG4gIC5hdXRob3Itc2VjdGlvbiAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNoYXJlbGluZXMtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsgfVxuICAgIC5zaGFyZWxpbmVzLXNlY3Rpb25fX3NoYXJlbGluZSB7XG4gICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5zaGFyZWxpbmVzLXNlY3Rpb25fX3NoYXJlbGluZSAucm93IC5jb2x1bW5zOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4xMjVyZW07IH1cbiAgLmF1dGhvci1zZWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuYXV0aG9yLXNlY3Rpb25fX3Bob3RvIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiAzcmVtOyB9XG4gICAgICAuYXV0aG9yLXNlY3Rpb25fX3Bob3RvLS1jb21wYW55IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmF1dGhvci1zZWN0aW9uX19jb250ZW50LWNvbHVtbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuYXV0aG9yLXNlY3Rpb25fX2NvbnRlbnQtY29sdW1uLXRvcCB7XG4gICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5hdXRob3Itc2VjdGlvbl9fbmFtZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtOyB9XG4gICAgLmF1dGhvci1zZWN0aW9uX19wb3NpdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIC5wb3N0LXNpZGViYXItY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAucG9zdC1zaWRlYmFyX19tZWRpYS1yZXNvdXJjZXMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ibG9ja3F1b3RlIHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAucmVsYXRlZC1yZXBvcnRfX2ltYWdlLWxpbmsge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnJlbGF0ZWQtcmVwb3J0X19pbWFnZS1saW5rIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAucmVsYXRlZC1yZXBvcnRfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNwZWFrZXItc2VjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4ucG9zdC10b3BfX2xvZ2luLWluZm8ge1xuICBiYWNrZ3JvdW5kOiAjMDA4MjgzO1xuICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICBib3gtc2hhZG93OiAwIDAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gIHBhZGRpbmc6IDFyZW0gMXJlbSAxLjYyNXJlbTsgfVxuICAucG9zdC10b3BfX2xvZ2luLWluZm8tLWxvZ2dlZC1pbiB7XG4gICAgcGFkZGluZzogMXJlbTsgfVxuICAucG9zdC10b3BfX2xvZ2luLWluZm8tLWhhcy1saW5rIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5wb3N0LXRvcF9fbG9naW4taW5mby1ibG9jay1saW5rIHtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMsIGJhY2tncm91bmQgMjAwbXM7IH1cbiAgLnBvc3QtdG9wX19sb2dpbi1pbmZvLWJsb2NrLWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwNzJlNDM7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIC43NXJlbTsgfVxuICAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBtYXJnaW4tcmlnaHQ6IC41NjI1cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgd2lkdGg6IDEuNTYyNWVtO1xuICAgIGhlaWdodDogMS40Mzc1ZW07XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTAuMzEyNWVtIC0xMy4yNWVtOyB9XG4gICAgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUgLTIxMnB4OyB9XG4gIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZS0tbG9nZ2VkLWluIHtcbiAgICBtYXJnaW46IDA7IH1cblxuLnBvc3QtdG9wX19sb2dpbi1pbmZvLWRlc2Mge1xuICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7IH1cblxuLnBvc3QtdG9wX19sb2dpbi1pbmZvLWxpbmsge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4ucG9zdC1jb250ZW50LS1yZXBvcnQgdWwge1xuICBtYXJnaW46IDAgLTMuNXJlbSAyLjg3NXJlbTtcbiAgcGFkZGluZzogM3JlbSAzLjVyZW07IH1cblxuLnBvc3Qtc2lkZWJhci0tcmVwb3J0IHtcbiAgYmFja2dyb3VuZDogI2Y3ZjdlYjtcbiAgbWFyZ2luOiAtNC41NjI1cmVtIDAgMCAtMS4yNXJlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjI1cmVtIDIuNjI1cmVtOyB9XG5cbi5zaWRlYmFyLXJlc291cmNlIHtcbiAgbWFyZ2luLWJvdHRvbTogM2VtOyB9XG4gIC5zaWRlYmFyLXJlc291cmNlX190eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgLnNpZGViYXItcmVzb3VyY2VfX2ltYWdlLWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnNpZGViYXItcmVzb3VyY2VfX2ltYWdlIHtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjsgfVxuICAuc2lkZWJhci1yZXNvdXJjZV9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IC4yNXJlbTsgfVxuICAuc2lkZWJhci1yZXNvdXJjZV9fdGl0bGUtbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5zaWRlYmFyLXJlc291cmNlX19kZXNjIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAuc2lkZWJhci1yZXNvdXJjZV9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA2ZW07XG4gICAgbWFyZ2luLXRvcDogMS4xMjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuc2lkZWJhci1yZXNvdXJjZTpob3ZlciAuc2lkZWJhci1yZXNvdXJjZV9faW1hZ2Uge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi5rZXktZmluZGluZ3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gIG1hcmdpbjogMCAtMy41cmVtO1xuICBwYWRkaW5nOiAyLjc1cmVtIDMuNXJlbSAzcmVtOyB9XG4gIC5rZXktZmluZGluZ3NfX3RvcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMi41NjI1cmVtOyB9XG4gIC5rZXktZmluZGluZ3MgdWwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgM3JlbTtcbiAgICBwYWRkaW5nOiAwIDAgMCAxLjEyNXJlbTsgfVxuICAua2V5LWZpbmRpbmdzIC53cC1jYXB0aW9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAuNjI1cmVtKSB7XG4gIC5rZXktZmluZGluZ3Mge1xuICAgIG1hcmdpbi1sZWZ0OiAtMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycmVtO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NXJlbSkge1xuICAucG9zdC10b3BfX2xvZ2luLWluZm8ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmtleS1maW5kaW5ncyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yLjg3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yLjg3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuODc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuODc1cmVtOyB9XG4gIC5wb3N0LXNpZGViYXItLXJlcG9ydCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yLjg3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yLjg3NXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMi44NzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1cmVtKSB7XG4gIC5wb3N0LXRvcF9fY29udGVudC0tcmVwb3J0IHtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTsgfVxuICAua2V5LWZpbmRpbmdzIHtcbiAgICBtYXJnaW4tbGVmdDogLTEuMzEyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjMxMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjMxMjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS4zMTI1cmVtOyB9XG4gIC5wb3N0LXNpZGViYXItLXJlcG9ydCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjMxMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMS4zMTI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4zMTI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMzEyNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI2LjE4NzVyZW0pIHtcbiAgLmtleS1maW5kaW5ncyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLnBvc3Qtc2lkZWJhci0tcmVwb3J0IHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLm5ld3Mtc2VjdGlvbi0tcmVwb3J0cyB7XG4gIHBhZGRpbmctdG9wOiAyLjI1cmVtOyB9XG5cbi5uZXdzLXNlY3Rpb25fX3RvcC0tcmVwb3J0cyB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5uZXdzLXNlY3Rpb25fX3RvcC1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4ubmV3cy1zZWN0aW9uX19yZXBvcnQtY29sdW1uIHtcbiAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTsgfVxuICAubmV3cy1zZWN0aW9uX19yZXBvcnQtY29sdW1uIC5yZXBvcnQtdGlsZSB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5zZWFyY2gtYmFyX19yb3ctLXJlcG9ydHMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDM7IH1cblxuLnNlYXJjaC1iYXJfX2NvbXBhbnkge1xuICBiYWNrZ3JvdW5kOiAjZjBmNWY5O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGQ7XG4gIGZsb2F0OiByaWdodDtcbiAgaGVpZ2h0OiAzLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBtYXJnaW4tbGVmdDogMS44MTI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0yLjVyZW07XG4gIHBhZGRpbmc6IDEuMTI1cmVtIDIuNXJlbSAxLjEyNXJlbSAxLjI1cmVtOyB9XG5cbi5zZWFyY2gtYmFyX19jb21wYW55LWluZm8ge1xuICBjb2xvcjogIzA3MmU0MztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnNlYXJjaC1iYXJfX2NvbXBhbnktdG9vbHRpcCB7XG4gIG1hcmdpbi1yaWdodDogLjc1cmVtO1xuICBvdXRsaW5lOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5zZWFyY2gtYmFyX19jb21wYW55LWxvZ2luIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAuNjI1cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5zZWFyY2gtYmFyX19kcm9wZG93biB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMC4zMTI1cmVtIDEuNTYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMuODEyNXJlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcywgdmlzaWJpbGl0eSAyNTBtcztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjsgfVxuICAuc2VhcmNoLWJhcl9fZHJvcGRvd24udmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5zZWFyY2gtYmFyX19kcm9wZG93bi1zZWFyY2hlcyB7XG4gIG1heC13aWR0aDogMTYuMjVyZW07IH1cblxuLnNlYXJjaC1iYXJfX2Ryb3Bkb3duLXNlYXJjaGVzLWxpc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5zZWFyY2gtYmFyX19kcm9wZG93bi1zZWFyY2hlcy1pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAuc2VhcmNoLWJhcl9fZHJvcGRvd24tc2VhcmNoZXMtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zZWFyY2gtYmFyX19kcm9wZG93bi1zZWFyY2hlcy1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5zZWFyY2gtYmFyX19kcm9wZG93bi1wb3B1bGFyIHtcbiAgbWF4LXdpZHRoOiA0OC43NXJlbTsgfVxuICAuc2VhcmNoLWJhcl9fZHJvcGRvd24tcG9wdWxhciA+IC5yb3cuc2VhcmNoLWJhci1kcm9wZG93bi1wb3B1bGFyLXJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0uNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLS42MjVyZW07IH1cblxuLnNlYXJjaC1iYXJfX2Ryb3Bkb3duLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBoZWlnaHQ6IDIwMHZoO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMy44MTI1cmVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zLCB2aXNpYmlsaXR5IDI1MG1zO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxOyB9XG4gIC5zZWFyY2gtYmFyX19kcm9wZG93bi1vdmVybGF5LnZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4uc2VhcmNoLWJhci0tcmVwb3J0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjsgfVxuICAuc2VhcmNoLWJhci0tcmVwb3J0cy5zdGlja3ktbmF2YmFyLS1zdGlja3kge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLnNlYXJjaC1iYXJfX2Ryb3Bkb3duIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5uZXdzLXNlY3Rpb25fX3JlcG9ydC1jb2x1bW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5wYWdlLWNvbnRlbnQtc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ucG9zdC1jb250ZW50LS1wYWdlIHtcbiAgcGFkZGluZzogMCAwIDUuNXJlbTsgfVxuICAucG9zdC1jb250ZW50LS1wYWdlIHA6Zmlyc3QtY2hpbGQgKyBwIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuXG4ucGFnZS10b3Age1xuICBwYWRkaW5nOiA4Ljc1cmVtIDAgMy4zNzVyZW07IH1cbiAgLnBhZ2UtdG9wX190aXRsZSB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5wYWdlLXRvcF9fcGFyZW50LWxpbmsge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luOiAwIDAgLjM3NXJlbTsgfVxuICAgIC5wYWdlLXRvcF9fcGFyZW50LWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDgyODM7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NXJlbSkge1xuICAucGFnZS10b3Age1xuICAgIHBhZGRpbmc6IDMuNzVyZW0gMCAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wb3N0LWNvbnRlbnQtLXBhZ2Uge1xuICAgIHBhZGRpbmc6IDAgMCAycmVtOyB9XG4gICAgLnBvc3QtY29udGVudC0tcGFnZSBwLFxuICAgIC5wb3N0LWNvbnRlbnQtLXBhZ2UgdWwge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uY29udGFjdC10b3Age1xuICBiYWNrZ3JvdW5kOiAjMDcyZTQzO1xuICBoZWlnaHQ6IDIxcmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNvbnRhY3QtdG9wX19tYXAge1xuICAgIGhlaWdodDogMjIuNXJlbTtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4uaW5mby13aW5kb3ctY29udGVudCB7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmluZm8td2luZG93LWNvbnRlbnRfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gICAgbWFyZ2luOiAwIDAgLjgxMjVyZW07IH1cbiAgLmluZm8td2luZG93LWNvbnRlbnRfX2FkZHJlc3Mge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luOiAwIDAgLjY4NzVyZW07IH1cbiAgLmluZm8td2luZG93LWNvbnRlbnRfX2RpcmVjdGlvbnMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAnZnV0dXJhLXB0Jywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAuaW5mby13aW5kb3ctY29udGVudF9fZGlyZWN0aW9ucy1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAuNzVlbTtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07IH1cbiAgLmluZm8td2luZG93LWNvbnRlbnRfX21hcmtlciB7XG4gICAgYm90dG9tOiAtMy41cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTRyZW07IH1cblxuLmNvbnRhY3QtY29udGVudC1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDYuNXJlbTtcbiAgcGFkZGluZy10b3A6IDNyZW07IH1cbiAgLmNvbnRhY3QtY29udGVudC1zZWN0aW9uX190aXRsZSB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAuY29udGFjdC1jb250ZW50LXNlY3Rpb25fX3JpZ2h0LWNvbHVtbiB7XG4gICAgcGFkZGluZy10b3A6IDEuMTI1cmVtOyB9XG5cbi5wb3N0LWNvbnRlbnQtLWNvbnRhY3Qge1xuICBwYWRkaW5nOiAwOyB9XG4gIC5wb3N0LWNvbnRlbnQtLWNvbnRhY3QgcCwgLnBvc3QtY29udGVudC0tY29udGFjdCBwOmZpcnN0LWNoaWxkIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW46IDAgMCAxLjhlbTsgfVxuXG4uY29udGFjdC1wZXJzb24ge1xuICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgLmNvbnRhY3QtcGVyc29uX19uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgLjYyNXJlbSAwIDA7IH1cbiAgLmNvbnRhY3QtcGVyc29uX19lbWFpbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAuY29udGFjdC1wZXJzb24gcC5jb250YWN0LXBlcnNvbi1wb3NpdGlvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbjogMDsgfVxuXG4ud3BjZjcgLmNvbHVtbnMge1xuICBtYXJnaW4tYm90dG9tOiAuNzVyZW07IH1cblxuLndwY2Y3IGlucHV0W3R5cGU9J3RleHQnXSwgLndwY2Y3IGlucHV0W3R5cGU9J2VtYWlsJ10sIC53cGNmNyBpbnB1dFt0eXBlPSd0ZWwnXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IC43NXJlbTtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogLjg3NXJlbSAxLjM3NXJlbSAuNjI1cmVtO1xuICB3aWR0aDogMTAwJTsgfVxuICAud3BjZjcgaW5wdXRbdHlwZT0ndGV4dCddOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLCAud3BjZjcgaW5wdXRbdHlwZT0nZW1haWwnXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwgLndwY2Y3IGlucHV0W3R5cGU9J3RlbCddOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzczODY4NDsgfVxuICAud3BjZjcgaW5wdXRbdHlwZT0ndGV4dCddOjotbW96LXBsYWNlaG9sZGVyLCAud3BjZjcgaW5wdXRbdHlwZT0nZW1haWwnXTo6LW1vei1wbGFjZWhvbGRlciwgLndwY2Y3IGlucHV0W3R5cGU9J3RlbCddOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzczODY4NDsgfVxuICAud3BjZjcgaW5wdXRbdHlwZT0ndGV4dCddOi1tcy1pbnB1dC1wbGFjZWhvbGRlciwgLndwY2Y3IGlucHV0W3R5cGU9J2VtYWlsJ106LW1zLWlucHV0LXBsYWNlaG9sZGVyLCAud3BjZjcgaW5wdXRbdHlwZT0ndGVsJ106LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzczODY4NDsgfVxuXG4ud3BjZjcgaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi53cGNmNyB0ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IC43NXJlbTtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogNy41cmVtO1xuICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDEuMTg3NXJlbSAxLjM3NXJlbSAxLjVyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC53cGNmNyB0ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM3Mzg2ODQ7IH1cbiAgLndwY2Y3IHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzczODY4NDsgfVxuICAud3BjZjcgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzczODY4NDsgfVxuXG4ud3BjZjcgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICBjb2xvcjogI2YwM2UzOTtcbiAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIG1hcmdpbi10b3A6IC4yNXJlbTtcbiAgcGFkZGluZzogMCAxLjM3NXJlbTsgfVxuXG4ud3BjZjcgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAuNzVyZW0gMCAxLjI1cmVtO1xuICBwYWRkaW5nOiAwIDEuMzc1cmVtOyB9XG4gIC53cGNmNyAud3BjZjctcmVzcG9uc2Utb3V0cHV0LndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzLCAud3BjZjcgLndwY2Y3LXJlc3BvbnNlLW91dHB1dC53cGNmNy1tYWlsLXNlbnQtbmcge1xuICAgIGNvbG9yOiAjZjAzZTM5OyB9XG4gIC53cGNmNyAud3BjZjctcmVzcG9uc2Utb3V0cHV0LndwY2Y3LXN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAjMDA4MjgzOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLmNvbnRhY3QtY29udGVudC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICBwYWRkaW5nLXRvcDogMi41cmVtOyB9XG4gIC5wb3N0LWNvbnRlbnQtLWNvbnRhY3QgcCB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtOyB9XG4gICAgLnBvc3QtY29udGVudC0tY29udGFjdCBwOmZpcnN0LWNoaWxkIHtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuLnNlYXJjaC1jYXRlZ29yaWVzLWJhciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsgfVxuXG4uc2VhcmNoLXJlc3VsdHMtc2VjdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogLjVyZW07IH1cblxuLnNlYXJjaC1yZXN1bHRzLWJsb2NrIHtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgcGFkZGluZy10b3A6IDEuNzVyZW07IH1cbiAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrX190b3Age1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbTsgfVxuICAuc2VhcmNoLXJlc3VsdHMtYmxvY2tfX3RpdGxlIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtOyB9XG4gIC5zZWFyY2gtcmVzdWx0cy1ibG9ja19fbm90aGluZy1mb3VuZCB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTsgfVxuICAuc2VhcmNoLXJlc3VsdHMtYmxvY2tfX2NvbnRlbnQtaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zZWFyY2gtcmVzdWx0cy1ibG9ja19fc2hvdy1tb3JlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5zZWFyY2gtcmVzdWx0cy1ibG9ja19fc2hvdy1tb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG8gMS41cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5zZWFyY2gtcmVzdWx0cy1ibG9ja19fc2hvdy1tb3JlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYxMDcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtIEZvbnRBd2Vzb21lO1xuICAgICAgbWFyZ2luLWxlZnQ6IC4yNXJlbTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXM7IH1cbiAgICAuc2VhcmNoLXJlc3VsdHMtYmxvY2tfX3Nob3ctbW9yZSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrX19zaG93LW1vcmUgc3Bhbi5sZXNzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5zZWFyY2gtcmVzdWx0cy1ibG9ja19fc2hvdy1tb3JlLmFjdGl2ZTphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTsgfVxuICAgIC5zZWFyY2gtcmVzdWx0cy1ibG9ja19fc2hvdy1tb3JlLmFjdGl2ZSBzcGFuLmxlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrX19zaG93LW1vcmUuYWN0aXZlIHNwYW4ubW9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuc2VhcmNoLXJlc3VsdHMtYmxvY2s6bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAuc2VhcmNoLXJlc3VsdHMtYmxvY2tfX3Nob3ctbW9yZS13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrX19jb250ZW50ID4gLnJvdyA+IC5jb2x1bW5zOm50aC1jaGlsZChuKzUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuc2VhcmNoLXJlc3VsdHMtYmxvY2tfX2NvbnRlbnQuc2hvd2luZy1tb3JlID4gLnJvdyA+IC5jb2x1bW5zOm50aC1jaGlsZChuKzUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjYuMTg3NXJlbSkge1xuICAuc2VhcmNoLXJlc3VsdHMtYmxvY2sgLmxpc3QtaXRlbV9fcm93IC5zbWFsbC02IHtcbiAgICB3aWR0aDogMjkuMTYlOyB9XG4gIC5zZWFyY2gtcmVzdWx0cy1ibG9jayAubGlzdC1pdGVtX19jb250ZW50LnNtYWxsLTYge1xuICAgIG1hcmdpbi1sZWZ0OiA0LjE4JTtcbiAgICB3aWR0aDogNjYuNjYlOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uYWJvdXQtdG9wIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Fib3V0LXRvcC1iYWNrZ3JvdW5kLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgY29sb3I6ICNmZmY7XG4gIG1pbi1oZWlnaHQ6IDMyLjM3NXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDZyZW07XG4gIHBhZGRpbmctdG9wOiA5LjEyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyOyB9XG4gIC5hYm91dC10b3BfX3RpdGxlIHtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBtYXJnaW46IDAgMCAxLjgxMjVyZW07IH1cbiAgLmFib3V0LXRvcF9fZGVzYyB7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmFib3V0LXRvcF9fcGxheS1idXR0b24ge1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5hYm91dC10b3BfX3BsYXktZGVzYyB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAycmVtO1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5hYm91dC1uYXYge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWJvdXQtbmF2X19saXN0IHtcbiAgICBoZWlnaHQ6IDMuODEyNXJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5hYm91dC1uYXZfX2xpc3QtZWxlbWVudCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAuNDM3NXJlbTsgfVxuICAuYWJvdXQtbmF2X19saXN0LWVsZW1lbnQtbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogNHJlbTtcbiAgICBjb2xvcjogIzAwODI4MztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgcGFkZGluZzogLjc1cmVtIDEuODc1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXM7IH1cbiAgICAuYWJvdXQtbmF2X19saXN0LWVsZW1lbnQtbGluay0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5hYm91dC1uYXZfX2xpc3QtZWxlbWVudC1saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYWJvdXQtbmF2X19kb3dubG9hZCB7XG4gICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICBib3R0b206IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDYyNXJlbTtcbiAgICBwYWRkaW5nOiAxLjEyNXJlbSAyLjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRvcDogLTFweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDI1MG1zOyB9XG4gICAgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgICAgd2lkdGg6IDEuNTYyNWVtO1xuICAgICAgaGVpZ2h0OiAxLjQzNzVlbTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wLjMxMjVlbSAtMTMuMjVlbTsgfVxuICAgICAgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNSAtMjEycHg7IH1cbiAgICAuYWJvdXQtbmF2X19kb3dubG9hZDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDE1ZjVmO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYWJvdXQtbmF2X19kb3dubG9hZC0tbW9iaWxlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMC4zMTI1cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgIHBhZGRpbmc6IDEuMTI1cmVtO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdG9wOiAzcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiA0OyB9XG4gIC5hYm91dC1uYXYtLXN0aWNreSB7XG4gICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjMxMjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNDsgfVxuXG4uYWJvdXQtbWlzc2lvbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmFib3V0LW1pc3Npb25fX3Jvdy1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmFib3V0LW1pc3Npb25fX2Jsb2NrLWdyYXkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5hYm91dC1taXNzaW9uX19ibG9jay1ncmF5OjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIDAuMSk7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDI1MCU7IH1cbiAgLmFib3V0LW1pc3Npb25fX3RpdGxlIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBtYXJnaW4tdG9wOiA0LjEyNXJlbTsgfVxuICAuYWJvdXQtbWlzc2lvbl9fZGVzYyB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW4tYm90dG9tOiA2LjI1cmVtOyB9XG4gIC5hYm91dC1taXNzaW9uX19pbWFnZS1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWJvdXQtbWlzc2lvbl9faW1hZ2Uge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDUwdnc7IH1cbiAgLmFib3V0LW1pc3Npb25fX3RleHQtYmxvY2sge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiA1LjYyNXJlbSAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgLmFib3V0LW1pc3Npb25fX3RleHQtYmxvY2sgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmFib3V0LW1pc3Npb25fX3Jlc2VhcmNoIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBtYXJnaW4tdG9wOiA1LjYyNXJlbTsgfVxuICAuYWJvdXQtbWlzc2lvbl9fcmVzZWFyY2gtdGl0bGUge1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDI1cmVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAuYWJvdXQtbWlzc2lvbl9fcmVzZWFyY2gtZGVzYyB7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAyNXJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogLjgxMjVyZW0gMDsgfVxuICAuYWJvdXQtbWlzc2lvbl9fbGF0ZXN0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgICBwYWRkaW5nLXRvcDogMjVweDsgfVxuICAuYWJvdXQtbWlzc2lvbl9fbGF0ZXN0LXRpdGxlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmFib3V0LW1pc3Npb25fX2xhdGVzdC1hbGwge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuYWJvdXQtbWlzc2lvbl9fbGF0ZXN0LXJlcG9ydHMge1xuICAgIG1hcmdpbi1ib3R0b206IDcuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjI1cmVtOyB9XG4gICAgLmFib3V0LW1pc3Npb25fX2xhdGVzdC1yZXBvcnRzIC5saXN0LWl0ZW1fX2ltYWdlIHtcbiAgICAgIG1hcmdpbi10b3A6IC4zMTI1cmVtOyB9XG4gICAgLmFib3V0LW1pc3Npb25fX2xhdGVzdC1yZXBvcnRzIC5sYXJnZS0yLTV0aCB7XG4gICAgICB3aWR0aDogNDAlOyB9XG4gICAgLmFib3V0LW1pc3Npb25fX2xhdGVzdC1yZXBvcnRzIC5sYXJnZS0zLTV0aCB7XG4gICAgICB3aWR0aDogNjAlOyB9XG5cbi5hYm91dC1xdW90ZXMge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaG9tZXBhZ2UtdG9wLWJhY2tncm91bmQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMzQuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDdyZW07XG4gIHBhZGRpbmctdG9wOiA3cmVtOyB9XG4gIC5hYm91dC1xdW90ZXNfX21hcmtzIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgLmFib3V0LXF1b3Rlc19fc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5hYm91dC1xdW90ZXNfX3F1b3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgIG1heC13aWR0aDogNTByZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuNjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IC42MjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5hYm91dC1xdW90ZXNfX25hbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICBtYXJnaW46IDIuODEyNXJlbSAwIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5hYm91dC1xdW90ZXNfX25hdiB7XG4gICAgbWFyZ2luOiAyLjgxMjVyZW0gMCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW46IC4zNzVyZW0gLjc1cmVtO1xuICBvcGFjaXR5OiAuMzU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjI1cztcbiAgd2lkdGg6IDFyZW07IH1cbiAgLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyLCAub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLmFib3V0LWF3YXJkcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTA4LCAxNjAsIDIwMSwgMC4xKTtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIHBhZGRpbmc6IDIuMjVyZW07IH1cbiAgLmFib3V0LWF3YXJkc19fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMzEyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAzLjMxMjVyZW07IH1cbiAgLmFib3V0LWF3YXJkc19faW1nIHtcbiAgICBib3JkZXI6IHNvbGlkIC4xODc1cmVtICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG5cbi5ob21lLWF3YXJkLS1hYm91dCB7XG4gIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuXG4uYWJvdXQtdGVhbSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogMTMlO1xuICBwYWRkaW5nLXRvcDogMTAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmFib3V0LXRlYW06YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDgyODMsICM3ZmMwYzEpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IC45NTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5hYm91dC10ZWFtID4gLnJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hYm91dC10ZWFtX190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5hYm91dC10ZWFtX19kZXNjIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07IH1cbiAgLmFib3V0LXRlYW1fX2J1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDVyZW07XG4gICAgY29sb3I6ICMwMDgyODM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgcGFkZGluZzogLjg3NXJlbSAyLjVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMsIGJhY2tncm91bmQtY29sb3IgMjUwbXM7IH1cbiAgICAuYWJvdXQtdGVhbV9fYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmFib3V0LXRlYW1fX3ZhY2FuY2llcy1ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IC45Mzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC5hYm91dC10ZWFtX192YWNhbmNpZXMtbm90aWNlIGEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjYuMjVlbSkge1xuICAgICAgLmFib3V0LXRlYW1fX3ZhY2FuY2llcy1ub3RpY2Uge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjlyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuYWJvdXQtdGVhbV9fdmFjYW5jaWVzLW5vdGljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjgxMjVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5hYm91dC10ZWFtX192YWNhbmNpZXMtbm90aWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjc1cmVtOyB9IH1cbiAgLmFib3V0LXRlYW1fX2N1cnJlbnQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgIHBhZGRpbmctdG9wOiAyNXB4OyB9XG4gIC5hYm91dC10ZWFtX19jdXJyZW50LXRpdGxlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmFib3V0LXRlYW1fX2N1cnJlbnQtYWxsIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAuYWJvdXQtdGVhbV9fY3VycmVudC1hbGw6aG92ZXIge1xuICAgICAgY29sb3I6ICNkZGQ7IH1cbiAgLmFib3V0LXRlYW1fX2N1cnJlbnQtdmFjYW5jaWVzIHtcbiAgICBtYXJnaW4tdG9wOiAuNjI1cmVtOyB9XG4gIC5hYm91dC10ZWFtIC5saXN0LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDFyZW0gMDsgfVxuICAgIC5hYm91dC10ZWFtIC5saXN0LWl0ZW1fX2Rlc2Mge1xuICAgICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIG1hcmdpbjogMDsgfVxuXG4uYWJvdXQtaGlzdG9yeSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWJvdHRvbTogNS42MjVyZW07XG4gIHBhZGRpbmctdG9wOiA0LjYyNXJlbTsgfVxuICAuYWJvdXQtaGlzdG9yeV9fZGVzYyB7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDQzLjc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogLjYyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNjI1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWJvdXQtaGlzdG9yeV9faXRlbSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAuYWJvdXQtaGlzdG9yeV9feWVhci1jb250IHtcbiAgICBtYXJnaW4tdG9wOiAzLjgxMjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07IH1cbiAgICAuYWJvdXQtaGlzdG9yeV9feWVhci1jb250LS1maXJzdCB7XG4gICAgICBtYXJnaW4tdG9wOiAyLjMxMjVyZW07IH1cbiAgLmFib3V0LWhpc3RvcnlfX3llYXIge1xuICAgIGNvbG9yOiAjNmNhMGNhO1xuICAgIGZvbnQtc2l6ZTogOTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgICAuYWJvdXQtaGlzdG9yeV9feWVhciArIC5oZWFkaW5nLTQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAuYWJvdXQtaGlzdG9yeV9fcmVwb3J0LXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEuNzVyZW0gMCAxLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IC4yNXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5hYm91dC1oaXN0b3J5X19saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGRkO1xuICAgIHdpZHRoOiAxcHg7IH1cbiAgLmFib3V0LWhpc3RvcnlfX3RleHQtYmxvY2tzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjg3NXJlbTtcbiAgICBtYXJnaW4tdG9wOiA1LjI1cmVtOyB9XG4gICAgLmFib3V0LWhpc3RvcnlfX3RleHQtYmxvY2tzLS1maXJzdCB7XG4gICAgICBtYXJnaW4tdG9wOiAzLjc1cmVtOyB9XG4gIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2NrIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAuNzVyZW0gMS43NXJlbSAxLjg3cmVtOyB9XG4gICAgLmFib3V0LWhpc3RvcnlfX3RleHQtYmxvY2stLXRpdGxlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwNzJlNDM7XG4gICAgICBtaW4taGVpZ2h0OiA5Ljc1cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuYWJvdXQtaGlzdG9yeV9fdGV4dC1ibG9jay0tdGl0bGU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBsZWZ0OiAtLjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAuODEyNXJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB3aWR0aDogMXJlbTsgfVxuICAgIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2NrLS1pbXBhY3QxIHtcbiAgICAgIGJhY2tncm91bmQ6ICNiNGI2M2M7XG4gICAgICBtaW4taGVpZ2h0OiAxNXJlbTsgfVxuICAgIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2NrLS1pbXBhY3QyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM3Mzg2ODQ7XG4gICAgICBtaW4taGVpZ2h0OiAxNXJlbTsgfVxuICAuYWJvdXQtaGlzdG9yeV9fdGV4dC1ibG9jay10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yOWVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAuYWJvdXQtaGlzdG9yeV9fdGV4dC1ibG9jay1kZXNjIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogLjY4NzVyZW0gMCAwOyB9XG4gIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2Nrcy13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmFib3V0LWhpc3RvcnlfX2ltYWdlLWNvbnQge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTEzMCU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMzAlOyB9XG4gIC5hYm91dC1oaXN0b3J5X19pbWFnZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4uYWJvdXQtZnVuZGVycyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci10b3A6IDFweCAjZGRkIHNvbGlkO1xuICBjb2xvcjogIzA3MmU0MztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZy1ib3R0b206IDQuNjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMy42MjVyZW07IH1cbiAgLmFib3V0LWZ1bmRlcnMtLWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTA4LCAxNjAsIDIwMSwgMC4xKTtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIHBhZGRpbmc6IDQuNjI1cmVtIDAgNS42MjVyZW07IH1cbiAgLmFib3V0LWZ1bmRlcnNfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxLjMxMjVyZW07IH1cbiAgLmFib3V0LWZ1bmRlcnNfX2Rlc2Mge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwIDAgMS42MjVyZW07XG4gICAgbWF4LXdpZHRoOiAzNy41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogLjYyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNjI1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWJvdXQtZnVuZGVyc19fbGluayB7XG4gICAgY29sb3I6ICMwMDgyODM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zOyB9XG4gICAgLmFib3V0LWZ1bmRlcnNfX2xpbmsgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCB2aXNpYmlsaXR5IDIwMG1zOyB9XG4gICAgICAuYWJvdXQtZnVuZGVyc19fbGluayBzcGFuOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNWVtOyB9XG4gICAgICAuYWJvdXQtZnVuZGVyc19fbGluayBzcGFuLmxlc3Mge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuYWJvdXQtZnVuZGVyc19fbGluayBzcGFuLm1vcmU6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnXFxmMTA3JzsgfVxuICAgICAgLmFib3V0LWZ1bmRlcnNfX2xpbmsgc3Bhbi5sZXNzOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcZjEwNic7IH1cbiAgICAuYWJvdXQtZnVuZGVyc19fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAgIC5hYm91dC1mdW5kZXJzX19saW5rLmFjdGl2ZSBzcGFuLmxlc3Mge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAuYWJvdXQtZnVuZGVyc19fbGluay5hY3RpdmUgc3Bhbi5tb3JlIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLmFib3V0LWZ1bmRlcnNfX2Z1bmRlcnMge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIHBhZGRpbmctdG9wOiA0cmVtOyB9XG4gIC5hYm91dC1mdW5kZXJzX19mdW5kZXJzLWlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuYWJvdXQtZnVuZGVyc19fZnVuZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjM3NXJlbTsgfVxuICAuYWJvdXQtZnVuZGVyc19fZnVuZGVyLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmFib3V0LWZ1bmRlcnNfX2Z1bmRlci1kZXNjIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIG1hcmdpbjogLjI1cmVtIDAgMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3My43NXJlbSkge1xuICAuYWJvdXQtbmF2X19saXN0LWVsZW1lbnQge1xuICAgIG1hcmdpbi1yaWdodDogLjI1cmVtOyB9XG4gIC5hYm91dC1uYXZfX2xpc3QtZWxlbWVudC1saW5rIHtcbiAgICBwYWRkaW5nOiAuNzVyZW0gMXJlbTsgfVxuICAuYWJvdXQtdGVhbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gICAgcGFkZGluZy10b3A6IDVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAuYWJvdXQtaGlzdG9yeV9faW1hZ2UtY29udCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYWJvdXQtaGlzdG9yeV9fbGluZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlO1xuICAgIG1hcmdpbi1yaWdodDogLTguMzMzMzMlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NXJlbSkge1xuICAuYWJvdXQtbmF2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLmFib3V0LXRvcCB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMy4yNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgICB6LWluZGV4OiAzOyB9XG4gICAgLmFib3V0LXRvcF9fZGVzYyB7XG4gICAgICBmb250LXNpemU6IC44NzVyZW07IH1cbiAgICAuYWJvdXQtdG9wIC5icmVhZGNydW1icyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wb3N0LXRvcF9fY29udGVudC0tYWJvdXQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5hYm91dC1uYXZfX2Rvd25sb2FkLS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hYm91dC1taXNzaW9uX19yb3ctaW5uZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hYm91dC1taXNzaW9uX190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMi43NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmFib3V0LW1pc3Npb25fX2Rlc2Mge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuYWJvdXQtbWlzc2lvbl9fZGVzYyBwIHtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgfVxuICAuYWJvdXQtbWlzc2lvbl9faW1hZ2Uge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiA0OCU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuYWJvdXQtbWlzc2lvbl9fYmxvY2stZ3JheTphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYWJvdXQtbWlzc2lvbl9fdGV4dC1ibG9jayB7XG4gICAgbWFyZ2luOiAycmVtIDAgLjVyZW07IH1cbiAgICAuYWJvdXQtbWlzc2lvbl9fdGV4dC1ibG9jayBwLFxuICAgIC5hYm91dC1taXNzaW9uX190ZXh0LWJsb2NrIHVsIHtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgfVxuICAuYWJvdXQtbWlzc2lvbl9fcmVzZWFyY2gge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmFib3V0LW1pc3Npb25fX3Jlc2VhcmNoLWRlc2Mge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgfVxuICAuYWJvdXQtbWlzc2lvbl9fbGF0ZXN0LXJlcG9ydHMge1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAgIC5hYm91dC1taXNzaW9uX19sYXRlc3QtcmVwb3J0cyAubGFyZ2UtMi01dGgge1xuICAgICAgd2lkdGg6IDI5LjE2JTsgfVxuICAgIC5hYm91dC1taXNzaW9uX19sYXRlc3QtcmVwb3J0cyAubGFyZ2UtMy01dGgge1xuICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgd2lkdGg6IDY2LjY2JTsgfVxuICAuYWJvdXQtcXVvdGVzIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjg3NXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMi44NzVyZW07IH1cbiAgICAuYWJvdXQtcXVvdGVzX19xdW90ZSB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgICAuYWJvdXQtcXVvdGVzX19uYW1lIHtcbiAgICAgIG1hcmdpbjogMi43NXJlbSAwIDA7IH1cbiAgICAuYWJvdXQtcXVvdGVzX19uYXYge1xuICAgICAgbWFyZ2luOiAyLjM3NXJlbSAwIDA7IH1cbiAgLmFib3V0LXRlYW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9XG4gICAgLmFib3V0LXRlYW0gLmNvbHVtbjpmaXJzdC1jaGlsZCwgLmFib3V0LXRlYW0gLmNvbHVtbnM6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5hYm91dC10ZWFtX19kZXNjIHtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgfVxuICAgIC5hYm91dC10ZWFtX19idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgLmFib3V0LWhpc3Rvcnkge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIHBhZGRpbmctdG9wOiAzLjYyNXJlbTsgfVxuICAgIC5hYm91dC1oaXN0b3J5ID4gaDEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmFib3V0LWhpc3RvcnlfX2Rlc2Mge1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuYWJvdXQtaGlzdG9yeV9faXRlbSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5hYm91dC1oaXN0b3J5X195ZWFyIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5hYm91dC1oaXN0b3J5X195ZWFyLWNvbnQge1xuICAgICAgbWFyZ2luLXRvcDogMy42MjVyZW07IH1cbiAgICAuYWJvdXQtaGlzdG9yeV9fdGV4dC1ibG9ja3Mge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogMi43NXJlbTsgfVxuICAgIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2Nrcy13cmFwcGVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH1cbiAgICAuYWJvdXQtaGlzdG9yeV9fbGluZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmFib3V0LWhpc3RvcnlfX3RleHQtYmxvY2sge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsgfVxuICAgICAgLmFib3V0LWhpc3RvcnlfX3RleHQtYmxvY2stLXRpdGxlIHtcbiAgICAgICAgbWluLWhlaWdodDogMDsgfVxuICAgICAgICAuYWJvdXQtaGlzdG9yeV9fdGV4dC1ibG9jay0tdGl0bGU6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHRvcDogLS41cmVtOyB9XG4gICAgICAuYWJvdXQtaGlzdG9yeV9fdGV4dC1ibG9jay0taW1wYWN0MSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7IH1cbiAgICAgIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2NrLS1pbXBhY3QyIHtcbiAgICAgICAgbWluLWhlaWdodDogMDsgfVxuICAgIC5hYm91dC1oaXN0b3J5X190ZXh0LWJsb2NrLWRlc2Mge1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAgIC5hYm91dC1oaXN0b3J5X19yZXBvcnRzIC5saXN0LWl0ZW1fX3JvdyAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMjkuMTYlOyB9XG4gICAgLmFib3V0LWhpc3RvcnlfX3JlcG9ydHMgLmxpc3QtaXRlbV9fcm93IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgd2lkdGg6IDY2LjY2JTsgfVxuICAuYWJvdXQtZnVuZGVyc19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4gIC5hYm91dC1mdW5kZXJzX19kZXNjIHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAuYWJvdXQtZnVuZGVyc19fZnVuZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjYuMTg3NXJlbSkge1xuICAuYWJvdXQtdG9wX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmFib3V0LXRvcF9fZGVzYyB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYWJvdXQtdGVhbV9fY3VycmVudCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5hYm91dC10ZWFtX19jdXJyZW50LXRpdGxlIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAuNzVyZW07IH1cbiAgLmFib3V0LXRlYW1fX2N1cnJlbnQtYWxsIHtcbiAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gb3JpZ2luYXRlIGZyb20gdGhlIHNhc3MtbXEgbGlicmFyeS5cbiAqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5jbHVkZWQgaXQsIHlvdSBjYW4gZWxpbWluYXRlIHRoZSBiZWxvd1xuICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9ibG9iL21hc3Rlci9fbXEuc2Nzc1xuICovXG4uc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubG9naW4tbW9kYWw6YmVmb3JlLCAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQxLjMxMjVlbSA1MS4wNjI1ZW07IH1cblxuLmx0LWllOSAuc2l0ZS1zZWFyY2hfX2J1dHRvbjphZnRlciwgLmx0LWllOSAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5sdC1pZTkgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmx0LWllOSAubG9naW4tbW9kYWw6YmVmb3JlLCAubHQtaWU5IC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5sdC1pZTkgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sdC1pZTkgLmxvYWQtbW9yZS1wb3N0c19fYnV0dG9uOmJlZm9yZSwgLmx0LWllOSAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5sdC1pZTkgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXRvcF9fbG9naW4taW5mby10aXRsZTpiZWZvcmUsIC5sdC1pZTkgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnRlYW0tY29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDQuMTI1cmVtOyB9IH1cblxuLnRlYW0tZ3JpZCAudGVhbS1ncmlkLWlubmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC42czsgfVxuICAudGVhbS1ncmlkIC50ZWFtLWdyaWQtaW5uZXIuYXJyYW5nZWQgLnRlYW0tZ3JpZC1lbGVtZW50IHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi50ZWFtLWZpbHRlcnMtYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi50ZWFtLWZpbHRlcnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IC45Mzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMTI1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjEyNXJlbTtcbiAgcGFkZGluZy10b3A6IC45Mzc1cmVtOyB9XG4gIC50ZWFtLWZpbHRlcnNfX3ZhY2FuY2llcy1idG4ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLnRlYW0tZmlsdGVycyB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC50ZWFtLWZpbHRlcnNfX3ZhY2FuY2llcy1idG4ge1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi50ZWFtLWZpbHRlcnMtbGlzdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRlYW0tZmlsdGVycy1saXN0X19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTsgfVxuICAudGVhbS1maWx0ZXJzLWxpc3RfX2l0ZW0tbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogMS4xMjVyZW07XG4gICAgY29sb3I6ICMwMDgyODM7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IC4zNzVyZW0gMS4yNXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlLW91dCwgY29sb3IgMjUwbXMgZWFzZS1vdXQ7IH1cbiAgICAudGVhbS1maWx0ZXJzLWxpc3RfX2l0ZW0tbGluay0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC50ZWFtLWZpbHRlcnMtbGlzdF9faXRlbS1saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAudGVhbS1maWx0ZXJzLWxpc3Qge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnRlYW0tZmlsdGVycy1saXN0X19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjI1cmVtOyB9IH1cblxuLnRlYW0tZmlsdGVycy1jaGlsZC1saXN0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgLjVyZW07XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRlYW0tZmlsdGVycy1jaGlsZC1saXN0X19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTsgfVxuICAudGVhbS1maWx0ZXJzLWNoaWxkLWxpc3RfX2l0ZW0tbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogMS4xMjVyZW07XG4gICAgY29sb3I6ICMwMDgyODM7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IC4zNzVyZW0gMS4yNXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlLW91dCwgY29sb3IgMjUwbXMgZWFzZS1vdXQ7IH1cbiAgICAudGVhbS1maWx0ZXJzLWNoaWxkLWxpc3RfX2l0ZW0tbGluay0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC50ZWFtLWZpbHRlcnMtY2hpbGQtbGlzdF9faXRlbS1saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAudGVhbS1maWx0ZXJzLWNoaWxkLWxpc3QtLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnBhZ2UtY29udGVudC1zZWN0aW9uLS10ZWFtIHtcbiAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS1jb250ZW50LXNlY3Rpb24tLXRlYW0ge1xuICAgICAgcGFkZGluZy10b3A6IDRyZW07IH0gfVxuXG4ucGFnZS1jb250ZW50LXNlY3Rpb25fX2JhY2stdG8tYWJvdXQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07IH1cblxuLnBhZ2UtY29udGVudC1zZWN0aW9uX19iYWNrLXRvLWFib3V0LWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5wYWdlLWNvbnRlbnQtc2VjdGlvbl9fYmFjay10by1hYm91dC1saW5rOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcZjEwNCc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtcbiAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTsgfVxuXG4ucG9zdC1jb250ZW50LS10ZWFtIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIHBhZGRpbmc6IDEuODc1cmVtIDAgNC4xMjVyZW07IH1cbiAgLnBvc3QtY29udGVudC0tdGVhbSBoMSB7XG4gICAgbWFyZ2luOiAxLjg3NXJlbSAwOyB9XG4gIC5wb3N0LWNvbnRlbnQtLXRlYW0gcCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTsgfVxuXG4uZ3JvdXAtd3JhcCB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgLmdyb3VwLXdyYXAuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5ncm91cC13cmFwX190aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTI1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMzc1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuMjVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5ncm91cC13cmFwIC5yb3ctaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi50ZWFtLWdyaWQtZWxlbWVudCB7XG4gIG1hcmdpbjogMCAwIDMuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyBlYXNlLW91dDsgfVxuICAudGVhbS1ncmlkLWVsZW1lbnRfX3Bob3RvLXdyYXBwZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogLjc1cmVtO1xuICAgIG1hcmdpbjogMCAwIDEuMTg3NXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLnRlYW0tZ3JpZC1lbGVtZW50X19waG90by13cmFwcGVyIGltZyB7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC50ZWFtLWdyaWQtZWxlbWVudF9fbWVtYmVyLW5hbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbjogMCAwIC4yNXJlbTsgfVxuICAudGVhbS1ncmlkLWVsZW1lbnRfX21lbWJlci1uYW1lLWxpbmsge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAudGVhbS1ncmlkLWVsZW1lbnRfX21lbWJlci1wb3NpdGlvbiB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IC45Mzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTsgfVxuICAudGVhbS1ncmlkLWVsZW1lbnRfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnRlYW0tZ3JpZC1lbGVtZW50OmhvdmVyIC50ZWFtLWdyaWQtZWxlbWVudF9fbWVtYmVyLW5hbWUtbGluayB7XG4gICAgY29sb3I6ICMwMDgyODM7IH1cbiAgLnRlYW0tZ3JpZC1lbGVtZW50OmhvdmVyIC50ZWFtLWdyaWQtZWxlbWVudF9fcGhvdG8td3JhcHBlciBpbWcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi5hYm91dC10ZWFtX19jdXJyZW50LS10ZWFtIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzA3MmU0MztcbiAgY29sb3I6ICMwNzJlNDM7XG4gIG1hcmdpbi1ib3R0b206IDEuMTI1cmVtO1xuICBwYWRkaW5nLXRvcDogLjkzNzVyZW07IH1cblxuLnRlYW0tc2lkZWJhciB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC50ZWFtLXNpZGViYXJfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDAgYXV0byAxLjVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnRlYW0tc2lkZWJhcl9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGYxMDcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtIEZvbnRBd2Vzb21lO1xuICAgICAgbWFyZ2luLWxlZnQ6IC4yNXJlbTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXM7IH1cbiAgICAudGVhbS1zaWRlYmFyX19idXR0b24gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIC50ZWFtLXNpZGViYXJfX2J1dHRvbiBzcGFuLmhpZGUtam9icyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAudGVhbS1zaWRlYmFyX19idXR0b24uYWN0aXZlOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpOyB9XG4gICAgLnRlYW0tc2lkZWJhcl9fYnV0dG9uLmFjdGl2ZSBzcGFuLmhpZGUtam9icyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAudGVhbS1zaWRlYmFyX19idXR0b24uYWN0aXZlIHNwYW4uc2hvdy1qb2JzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnRlYW0tc2lkZWJhcl9fcm93LnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC50ZWFtLXNpZGViYXJfX3Jvdy1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnRlYW0tc2lkZWJhcl9fd3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGVhbS1ib2FyZC1tZW1iZXIge1xuICBjb2xvcjogIzA3MmU0MztcbiAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAudGVhbS1ib2FyZC1tZW1iZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAudGVhbS1ib2FyZC1tZW1iZXJfX25hbWUge1xuICAgIGNvbG9yOiAjMDA4MjgzO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbjogMCAwIC43NXJlbTsgfVxuICAudGVhbS1ib2FyZC1tZW1iZXJfX2pvYi10aXRsZTphZnRlciB7XG4gICAgY29udGVudDogJywgJzsgfVxuICAudGVhbS1ib2FyZC1tZW1iZXJfX2RldGFpbHMge1xuICAgIG1hcmdpbjogMDsgfVxuICAudGVhbS1ib2FyZC1tZW1iZXJfX29yZ2FuaXNhdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4udGVhbS12YWNhbmNpZXMge1xuICBtYXJnaW4tYm90dG9tOiAyLjEyNXJlbTsgfVxuICAudGVhbS12YWNhbmNpZXNfX3Jvdy1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmxpc3QtaXRlbS0tdGVhbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS42MjVyZW07XG4gICAgcGFkZGluZzogMXJlbSAuNjI1cmVtOyB9IH1cblxuLmxpc3QtaXRlbV9fdGl0bGUtLXRlYW0ge1xuICBjb2xvcjogIzAwODI4MztcbiAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmxpc3QtaXRlbV9fdGl0bGUtLXRlYW0gPiBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmxpc3QtaXRlbV9fZGVzYy0tdGVhbSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogLjAxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbjogMDsgfVxuXG4udGVhbS1qb2luIHtcbiAgYmFja2dyb3VuZDogI2YwZjVmOTtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIG1hcmdpbjogMCAtMS4yNXJlbTtcbiAgcGFkZGluZzogMi44NzVyZW0gMS4yNXJlbSAzLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRlYW0tam9pbl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIC43NXJlbTsgfVxuICAudGVhbS1qb2luX19kZXNjIHtcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMCAwIDEuODc1cmVtOyB9XG5cbi50ZWFtLW1lbWJlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9tZW1iZXItYmcuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTUwbXMgZWFzZS1vdXQsIG9wYWNpdHkgNTUwbXMsIHZpc2liaWxpdHkgNTUwbXM7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDY7IH1cbiAgLnRlYW0tbWVtYmVyLm92ZXJmbG93LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gIC50ZWFtLW1lbWJlcl9fcm93IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLXRvcDogOHJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0zcmVtO1xuICAgIHRvcDogNC41cmVtOyB9XG4gICAgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b246bGFzdC1vZi10eXBlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b24teCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMS43NWVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjI1ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MDBtcyBlYXNlLWluLW91dDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHdpZHRoOiAxLjc1ZW07IH1cbiAgICAudGVhbS1tZW1iZXJfX2Nsb3NlLWJ1dHRvbi14OmJlZm9yZSwgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b24teDphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB3aWR0aDogMnB4OyB9XG4gICAgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b24teDpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC50ZWFtLW1lbWJlcl9fY2xvc2UtYnV0dG9uLXg6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b24teDpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLnRlYW0tbWVtYmVyX19jbG9zZS1idXR0b24teDpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3MjBkZWcpOyB9XG4gIC50ZWFtLW1lbWJlcl9fcGhvdG8td3JhcHBlciB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAudGVhbS1tZW1iZXJfX3Bob3RvIHtcbiAgICBib3gtc2hhZG93OiAwIDAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudGVhbS1tZW1iZXJfX3RvcCB7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjNmNhMGNhO1xuICAgIG1hcmdpbjogMS44NzVyZW0gMCAxLjVyZW07XG4gICAgcGFkZGluZzogMCAwIDAgMS41NjI1cmVtOyB9XG4gIC50ZWFtLW1lbWJlcl9fbmFtZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwIDAgLjE4NzVyZW07IH1cbiAgLnRlYW0tbWVtYmVyX19wb3NpdGlvbiB7XG4gICAgY29sb3I6ICMwNzJlNDM7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yNWVtOyB9XG4gIC50ZWFtLW1lbWJlcl9fY29udGVudCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjsgfVxuICAgIC50ZWFtLW1lbWJlcl9fY29udGVudCBwIHtcbiAgICAgIG1hcmdpbjogMS41ZW0gMDsgfVxuICAgIC50ZWFtLW1lbWJlcl9fY29udGVudCBhIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC50ZWFtLW1lbWJlci0tZGlzcGxheSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnRlYW0tbWVtYmVyLS1zaG93IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NS41cmVtKSB7XG4gIC50ZWFtLW1lbWJlcl9fY2xvc2UtYnV0dG9uIHtcbiAgICByaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0cmVtKSB7XG4gIC50ZWFtLXNpZGViYXJfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC50ZWFtLXNpZGViYXJfX3Jvdy1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmxpc3QtaXRlbS0tdGVhbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmFib3V0LXRlYW1fX2N1cnJlbnQtdGl0bGUtLXRlYW0ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudGVhbS1qb2luIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAudGVhbS1qb2luIC5yb3cgLmNvbHVtbnMge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAudGVhbS1ncmlkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC50ZWFtLWdyaWQtZWxlbWVudCB7XG4gICAgbWFyZ2luOiAwIDAgMi44NzVyZW07IH1cbiAgLnBvc3QtY29udGVudC0tdGVhbSB7XG4gICAgcGFkZGluZzogMS4xMjVyZW0gMCAxLjc1cmVtOyB9XG4gIC50ZWFtLW1lbWJlcl9fcm93IHtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTsgfVxuICAudGVhbS1tZW1iZXJfX2Nsb3NlLWJ1dHRvbiB7XG4gICAgdG9wOiAyLjVyZW07IH1cbiAgLnRlYW0tbWVtYmVyX190b3Age1xuICAgIG1hcmdpbi1sZWZ0OiAtMi4yNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuICAudGVhbS1tZW1iZXJfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMi4yNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLnRlYW0tam9pbiB7XG4gICAgbWFyZ2luOiAwIC0xLjMxMjVyZW07XG4gICAgcGFkZGluZzogMS41cmVtIDEuMzEyNXJlbSAycmVtOyB9XG4gIC50ZWFtLW1lbWJlcl9fcm93IHtcbiAgICBwYWRkaW5nLXRvcDogNC41cmVtOyB9XG4gIC50ZWFtLW1lbWJlcl9fY2xvc2UtYnV0dG9uIHtcbiAgICB0b3A6IDEuNXJlbTsgfVxuICAgIC50ZWFtLW1lbWJlcl9fY2xvc2UtYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBib3R0b206IDEuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiBhdXRvOyB9XG4gIC50ZWFtLW1lbWJlcl9fY29udGVudCBwLFxuICAudGVhbS1tZW1iZXJfX2NvbnRlbnQgdWwsXG4gIC50ZWFtLW1lbWJlcl9fY29udGVudCBvbCB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNi4xODc1cmVtKSB7XG4gIC50ZWFtLWdyaWQtZWxlbWVudCB7XG4gICAgbWFyZ2luOiAwIDAgMi4xMjVyZW07IH1cbiAgICAudGVhbS1ncmlkLWVsZW1lbnRfX21lbWJlci1uYW1lIHtcbiAgICAgIG1hcmdpbjogMCAwIDFyZW07IH1cbiAgLmFib3V0LXRlYW1fX2N1cnJlbnQtLXRlYW0gPiBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubGlzdC1pdGVtLS10ZWFtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDAgMS41cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAubGlzdC1pdGVtLS10ZWFtOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAuNzVyZW07IH1cbiAgICAubGlzdC1pdGVtLS10ZWFtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC50ZWFtLWpvaW4ge1xuICAgIG1hcmdpbjogMCAtMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAudGVhbS1tZW1iZXJfX3Bob3RvLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLnRlYW0tbWVtYmVyX190b3Age1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC50ZWFtLW1lbWJlcl9fY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5yZWZzLWNvbnRlbnQtc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiA0LjYyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5yZWZzLWNvbnRlbnRfX3RvcCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBjb2xvcjogIzA3MmU0MztcbiAgbWFyZ2luOiAwIDAgMi4yNXJlbTtcbiAgcGFkZGluZzogMCAwIDIuNXJlbTsgfVxuXG4ucmVmcy1jb250ZW50X190aXRsZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuLnJlZnMtY29udGVudF9fZGVzYyB7XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiAzNi4yNXJlbTsgfVxuXG4ucmVmcy1jb250ZW50X19rZXktdGVybXMge1xuICBtYXJnaW46IDAgMCA0LjEyNXJlbTsgfVxuXG4ucmVmcy1jb250ZW50X19rZXktdGVybXMtdG9wIHtcbiAgbWFyZ2luOiAwIDAgMi4xMjVyZW07IH1cblxuLnJlZnMtY29udGVudF9fa2V5LXRlcm1zLXRpdGxlIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDA7IH1cblxuLnJlZnMtY29udGVudF9fa2V5LXRlcm1zLWxpbmsge1xuICBmbG9hdDogcmlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTsgfVxuXG4ucmVmcy1jb250ZW50X19rZXktdGVybXMtZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4ucmVmcy1jb250ZW50X19rZXktdGVybSB7XG4gIG1hcmdpbi1ib3R0b206IDIuMTI1cmVtOyB9XG5cbi5yZWZzLWNvbnRlbnRfX2tleS10ZXJtLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIG1hcmdpbjogMCAwIC44NzVyZW07IH1cblxuLnJlZnMtY29udGVudF9fa2V5LXRlcm0tdGl0bGUtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ucmVmcy1jb250ZW50X19rZXktdGVybS1kZXNjIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMDsgfVxuXG4ucmVmcy1jb250ZW50X19hcmNoaXZlcy1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4ucmVmcy1hcmNoaXZlIHtcbiAgbWFyZ2luOiAwIDAgM3JlbTsgfVxuICAucmVmcy1hcmNoaXZlX19pbWFnZS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZWZzLWFyY2hpdmVfX2ltYWdlIHtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjsgfVxuICAucmVmcy1hcmNoaXZlX190aXRsZSB7XG4gICAgbWFyZ2luOiAxLjVyZW0gMDsgfVxuICAucmVmcy1hcmNoaXZlX190aXRsZS1saW5rIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAucmVmcy1hcmNoaXZlX190aXRsZS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMDA4MjgzOyB9XG4gIC5yZWZzLWFyY2hpdmVfX2Rlc2Mge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwIDAgMS4xMjVyZW07IH1cbiAgLnJlZnMtYXJjaGl2ZTpob3ZlciAucmVmcy1hcmNoaXZlX19pbWFnZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLnJlZnMtZmFxLXNlY3Rpb24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgcGFkZGluZzogMi4yNXJlbSAwIDA7IH1cbiAgLnJlZnMtZmFxLXNlY3Rpb25fX3RpdGxlIHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgLnJlZnMtZmFxLXNlY3Rpb25fX2Rlc2Mge1xuICAgIGNvbG9yOiAjMDcyZTQzO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwIDAgMnJlbTsgfVxuICAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoIHtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWZpZWxkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0ZW07XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRlbTtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAyLjVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAuNzVlbSAzZW0gLjc1ZW0gMS4yNWVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1maWVsZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAgIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtZmllbGQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICMwNzJlNDM7IH1cbiAgICAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWZpZWxkOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzA3MmU0MzsgfVxuICAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0biB7XG4gICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm90dG9tOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC40Mzc1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcztcbiAgICB3aWR0aDogM3JlbTsgfVxuICAgIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIHdpZHRoOiAwLjY4NzVlbTtcbiAgICAgIGhlaWdodDogMC42ODc1ZW07XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMC4zMTI1ZW0gLTQ3LjYyNWVtOyB9XG4gICAgICAubHQtaWU5IC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUgLTc2MnB4OyB9XG4gICAgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzA3MmU0MzsgfVxuXG4ucmVmcy1mYXFzIHtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgcGFkZGluZzogMDsgfVxuICAucmVmcy1mYXFzX19pdGVtOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5yZWZzLWZhcXNfX2l0ZW06bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tdGl0bGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDgyODM7IH1cbiAgLnJlZnMtZmFxc19faXRlbTpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50Omxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgLnJlZnMtZmFxc19faXRlbS0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5yZWZzLWZhcXNfX2l0ZW0tdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICAgIGNvbG9yOiAjMDA4MjgzO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBhZGRpbmc6IDEuMTI1cmVtIDIuNXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMsIGJhY2tncm91bmQgMjAwbXMsIGJvcmRlci1jb2xvciAyMDBtczsgfVxuICAgIC5yZWZzLWZhcXNfX2l0ZW0tdGl0bGU6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucmVmcy1mYXFzX19pdGVtLXRpdGxlOmhvdmVyLCAucmVmcy1mYXFzX19pdGVtLXRpdGxlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDA4MjgzO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwODI4MztcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDgyODM7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAucmVmcy1mYXFzX19pdGVtLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmMGY1Zjk7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDEuODc1cmVtIDIuNXJlbSAxLjVyZW07IH1cbiAgICAucmVmcy1mYXFzX19pdGVtLWNvbnRlbnQgcCB7XG4gICAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgICAgbWFyZ2luOiAwIDAgMS41cmVtOyB9XG4gIC5yZWZzLWZhcXNfX2l0ZW0tYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cblxuLnJlZnMtc2lkZWJhci1jb2x1bW4ge1xuICBwYWRkaW5nLXRvcDogMS44NzVyZW07IH1cblxuLnJlZnMtc2lkZWJhcl9fdG9wIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4xODc1cmVtOyB9XG5cbi5yZWZzLXNpZGViYXJfX2Rlc2Mge1xuICBjb2xvcjogIzA3MmU0MztcbiAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG4ucmVmcy1zaWRlYmFyX190b29scyB7XG4gIG1hcmdpbi10b3A6IDIuNjI1cmVtOyB9XG4gIC5yZWZzLXNpZGViYXJfX3Rvb2xzIC5yZXNvdXJjZS10aWxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG5cbi5yZWZzLWJvdHRvbS1hcmNoaXZlcyB7XG4gIGJhY2tncm91bmQ6ICNmMGY1Zjk7IH1cbiAgLnJlZnMtYm90dG9tLWFyY2hpdmVzIC5yb3cge1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjVyZW07XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnJlZnMtYm90dG9tLWFyY2hpdmVzIC5yb3c6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNkOGQ4ZDg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC00LjE2NjY2NiU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMXB4OyB9XG5cbi5yZWZzLWJvdHRvbS1hcmNoaXZlX190aXRsZSB7XG4gIG1hcmdpbjogMCAwIC43NXJlbTsgfVxuXG4ucmVmcy1ib3R0b20tYXJjaGl2ZV9fdGl0bGUtbGluayB7XG4gIGNvbG9yOiAjMDcyZTQzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnJlZnMtYm90dG9tLWFyY2hpdmVfX3RpdGxlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMDA4MjgzOyB9XG5cbi5yZWZzLWJvdHRvbS1hcmNoaXZlX19kZXNjIHtcbiAgY29sb3I6ICMwNzJlNDM7XG4gIGZvbnQtZmFtaWx5OiBcIlJ1YmlrXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRyZW0pIHtcbiAgLnJlZnMtc2lkZWJhcl9fYnV0dG9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLnJlZnMtY29udGVudC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMi4zNzVyZW07IH1cbiAgLnJlZnMtY29udGVudF9fa2V5LXRlcm1zIHtcbiAgICBtYXJnaW46IDAgMCAyLjVyZW07IH1cbiAgLnJlZnMtY29udGVudF9fa2V5LXRlcm0tZGVzYyB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH1cbiAgLnJlZnMtYXJjaGl2ZV9fZGVzYyB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH1cbiAgLnJlZnMtZmFxLXNlY3Rpb25fX2Rlc2Mge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtOyB9XG4gIC5yZWZzLWZhcXMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTsgfVxuICAgIC5yZWZzLWZhcXNfX2l0ZW0tdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbiAgICAgIHBhZGRpbmc6IDEuMTI1cmVtIDEuNXJlbTsgfVxuICAgIC5yZWZzLWZhcXNfX2l0ZW0tY29udGVudCB7XG4gICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtIC41cmVtOyB9XG4gICAgICAucmVmcy1mYXFzX19pdGVtLWNvbnRlbnQgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH1cbiAgICAucmVmcy1mYXFzX19pdGVtLWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiAuNzVlbSAxLjVlbTsgfVxuICAucmVmcy1zaWRlYmFyX19kZXNjIHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAucmVmcy1ib3R0b20tYXJjaGl2ZXMgLnJvdyB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTsgfVxuICAgIC5yZWZzLWJvdHRvbS1hcmNoaXZlcyAucm93OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5yZWZzLWJvdHRvbS1hcmNoaXZlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgLnJlZnMtYm90dG9tLWFyY2hpdmVfX2Rlc2Mge1xuICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAgIC5yZWZzLWJvdHRvbS1hcmNoaXZlOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI2LjE4NzVyZW0pIHtcbiAgLnJlZnMtY29udGVudF9fdG9wIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnJlZnMtZmFxLXNlY3Rpb25fX3RpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnJlZnMtZmFxLXNlY3Rpb25fX2Rlc2Mge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWZpZWxkIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgcGFkZGluZzogLjg3NWVtIDNlbSAuODc1ZW0gMXJlbTsgfVxuICAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0biB7XG4gICAgcmlnaHQ6IC4zNzVyZW07IH1cbiAgLnJlZnMtZmFxcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW07IH1cbiAgLnJlZnMtc2lkZWJhciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnJlZnMtc2lkZWJhcl9fdG9wIGgxIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnJlZnMtc2lkZWJhcl9fdG9vbHMge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAucmVmcy1hcmNoaXZlX19idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXG4gKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBvcmlnaW5hdGUgZnJvbSB0aGUgc2Fzcy1tcSBsaWJyYXJ5LlxuICogSWYgeW91IGhhdmUgYWxyZWFkeSBpbmNsdWRlZCBpdCwgeW91IGNhbiBlbGltaW5hdGUgdGhlIGJlbG93XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL2Jsb2IvbWFzdGVyL19tcS5zY3NzXG4gKi9cbi5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAucmVwb3J0LXRpbGVfX2xhdGVzdDpiZWZvcmUsIC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5ob21lLWNvbXBhbnktcmVwb3J0c19faW1hZ2UsIC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAuYmxvZy1zZWN0aW9uLXRvcF9fdGl0bGUtLWV2ZW50czpiZWZvcmUsIC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmFib3V0LW5hdl9fZG93bmxvYWQ6OmFmdGVyLCAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWcvL3Nwcml0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDEuMzEyNWVtIDUxLjA2MjVlbTsgfVxuXG4ubHQtaWU5IC5zaXRlLXNlYXJjaF9fYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmx0LWllOSAua2V5LXRlcm0tYmxvY2tfX2FydGljbGU6YmVmb3JlLCAubHQtaWU5IC5sb2dpbi1tb2RhbDpiZWZvcmUsIC5sdC1pZTkgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLmx0LWllOSAuc2VhcmNoLWJhcl9fc2VhcmNoLWJ1dHRvbjphZnRlciwgLmx0LWllOSAubG9hZC1tb3JlLXBvc3RzX19idXR0b246YmVmb3JlLCAubHQtaWU5IC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLmx0LWllOSAucG9zdC1zaWRlYmFyX19yZWxhdGVkLXJlcG9ydC10b3AtdGl0bGUtcHJlc3MtcmVsZWFzZTpiZWZvcmUsIC5sdC1pZTkgLnBvc3QtdG9wX19sb2dpbi1pbmZvLXRpdGxlOmJlZm9yZSwgLmx0LWllOSAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5sdC1pZTkgLnJlZnMtZmFxLXNlY3Rpb25fX3NlYXJjaC1idG46YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsgfVxuXG4uY2F0ZWdvcnktdG9wLS10b29scyB7XG4gIHBhZGRpbmctYm90dG9tOiAyLjYyNXJlbTsgfVxuXG4uY2F0ZWdvcnktdG9wX190b3AtLXRvb2xzIHAge1xuICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7IH1cblxuLnRvb2xzLWdyaWQtc2VjdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiA0Ljc1cmVtO1xuICBwYWRkaW5nLXRvcDogNC4xMjVyZW07IH1cblxuLnRvb2xzLWdyaWRfX2l0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAzLjM3NXJlbTsgfVxuXG4udG9vbHMtZ3JpZF9faW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NXJlbSkge1xuICAudG9vbHMtZ3JpZC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMy44NzVyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi50ZXJtcy1jb250ZW50LXNlY3Rpb24ge1xuICBwYWRkaW5nLWJvdHRvbTogNi43NXJlbTsgfVxuXG4udGVybS1hcnRpY2xlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIHBhZGRpbmctdG9wOiAzcmVtOyB9XG4gIC50ZXJtLWFydGljbGU6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDIuMjVyZW07IH1cbiAgLnRlcm0tYXJ0aWNsZV9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07IH1cblxuLnBvc3QtY29udGVudC0tdGVybSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnBvc3QtY29udGVudC0tdGVybSB1bCB7XG4gICAgcGFkZGluZzogM3JlbSA2LjI1cmVtIDEuNXJlbTsgfVxuXG4udGVybXMtc2lkZWJhci1jb2x1bW4ge1xuICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAudGVybXMtY29udGVudC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsgfVxuICAucG9zdC1jb250ZW50LS10ZXJtIHAsXG4gIC5wb3N0LWNvbnRlbnQtLXRlcm0gdWwsXG4gIC5wb3N0LWNvbnRlbnQtLXRlcm0gb2wge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAucG9zdC1jb250ZW50LS10ZXJtIHVsIHtcbiAgICBtYXJnaW46IDAgLTMuMjVyZW0gMi44NzVyZW07XG4gICAgcGFkZGluZzogM3JlbSA0LjI1cmVtIDEuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVyZW0pIHtcbiAgLnBvc3QtY29udGVudC0tdGVybSB1bCB7XG4gICAgbWFyZ2luOiAwIC0yLjg3NXJlbSAyLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAzcmVtIDMuODc1cmVtIDEuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVyZW0pIHtcbiAgLnRlcm1zLWNvbnRlbnQtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTsgfVxuICAucG9zdC1jb250ZW50LS10ZXJtIHAsXG4gIC5wb3N0LWNvbnRlbnQtLXRlcm0gdWwsXG4gIC5wb3N0LWNvbnRlbnQtLXRlcm0gb2wge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtOyB9XG4gIC5wb3N0LWNvbnRlbnQtLXRlcm0gdWwge1xuICAgIG1hcmdpbjogMCAtMS4zMTI1cmVtIDEuODc1cmVtO1xuICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtIDEuNXJlbTsgfVxuICAudGVybS1hcnRpY2xlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHBhZGRpbmctdG9wOiAycmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjYuMTg3NXJlbSkge1xuICAucG9zdC1jb250ZW50LS10ZXJtIHVsIHtcbiAgICBtYXJnaW46IDAgLTFyZW0gMS44NzVyZW07IH0gfVxuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5yZXBvcnQtdGlsZV9fbGF0ZXN0OmJlZm9yZSwgLmtleS10ZXJtLWJsb2NrX19hcnRpY2xlOmJlZm9yZSwgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmhvbWUtY29tcGFueS1yZXBvcnRzX19pbWFnZSwgLnNlYXJjaC1iYXJfX3NlYXJjaC1idXR0b246YWZ0ZXIsIC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5ibG9nLXNlY3Rpb24tdG9wX190aXRsZS0tZXZlbnRzOmJlZm9yZSwgLnBvc3Qtc2lkZWJhcl9fcmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2U6YmVmb3JlLCAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAuYWJvdXQtbmF2X19kb3dubG9hZDo6YWZ0ZXIsIC5yZWZzLWZhcS1zZWN0aW9uX19zZWFyY2gtYnRuOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9kaXN0L2ltZy8vc3ByaXRlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MS4zMTI1ZW0gNTEuMDYyNWVtOyB9XG5cbi5sdC1pZTkgLnNpdGUtc2VhcmNoX19idXR0b246YWZ0ZXIsIC5sdC1pZTkgLnJlcG9ydC10aWxlX19sYXRlc3Q6YmVmb3JlLCAubHQtaWU5IC5rZXktdGVybS1ibG9ja19fYXJ0aWNsZTpiZWZvcmUsIC5sdC1pZTkgLmxvZ2luLW1vZGFsOmJlZm9yZSwgLmx0LWllOSAuaG9tZS1jb21wYW55LXJlcG9ydHNfX2ltYWdlLCAubHQtaWU5IC5zZWFyY2gtYmFyX19zZWFyY2gtYnV0dG9uOmFmdGVyLCAubHQtaWU5IC5sb2FkLW1vcmUtcG9zdHNfX2J1dHRvbjpiZWZvcmUsIC5sdC1pZTkgLmJsb2ctc2VjdGlvbi10b3BfX3RpdGxlLS1ldmVudHM6YmVmb3JlLCAubHQtaWU5IC5wb3N0LXNpZGViYXJfX3JlbGF0ZWQtcmVwb3J0LXRvcC10aXRsZS1wcmVzcy1yZWxlYXNlOmJlZm9yZSwgLmx0LWllOSAucG9zdC10b3BfX2xvZ2luLWluZm8tdGl0bGU6YmVmb3JlLCAubHQtaWU5IC5hYm91dC1uYXZfX2Rvd25sb2FkOjphZnRlciwgLmx0LWllOSAucmVmcy1mYXEtc2VjdGlvbl9fc2VhcmNoLWJ0bjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOyB9XG5cbi5ob21lLXRvcC0tbGFuZyB7XG4gIG1pbi1oZWlnaHQ6IDQyMHB4OyB9XG5cbi5ob21lLWFib3V0LWxhbmctc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDEuNjI1cmVtIDAgMDsgfVxuXG4uaG9tZS1sYW5nLXRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMXJlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmhvbWUtbGFuZy10aXRsZS0tbWFyZ2luIHtcbiAgICBtYXJnaW46IDAgMCAyLjYyNXJlbTsgfVxuICAuaG9tZS1sYW5nLXRpdGxlLS1hbGlnbi1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5ibG9ja3F1b3RlLmhvbWUtYWJvdXQtbGFuZy1ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5wb3N0LWNvbnRlbnQtLWxhbmcge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIuNjI1cmVtIDAgMi4zNzVyZW07IH1cbiAgLnBvc3QtY29udGVudC0tbGFuZyBwIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMTVlbTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgbWFyZ2luOiAwIDAgMS41ZW07IH1cbiAgICAucG9zdC1jb250ZW50LS1sYW5nIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgZm9udC1mYW1pbHk6IFwiUnViaWtcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE1ZW07XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBtYXJnaW46IDAgMCAxLjVlbTsgfVxuICAgICAgLnBvc3QtY29udGVudC0tbGFuZyBwOmZpcnN0LWNoaWxkICsgcCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cblxuLmhvbWUtY29udGVudC1sYW5nLXNlY3Rpb24ge1xuICBwYWRkaW5nOiAwIDAgNC4zNzVyZW07IH1cblxuLmhvbWUtbGFuZy1yZXBvcnRzIC5saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDA7IH1cblxuLmhvbWUtbGFuZy1wcmVzcy1yZWxlYXNlIHtcbiAgbWFyZ2luOiAxLjI1cmVtIDAgMnJlbTsgfVxuICAuaG9tZS1sYW5nLXByZXNzLXJlbGVhc2VfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAuMjVyZW07IH1cbiAgLmhvbWUtbGFuZy1wcmVzcy1yZWxlYXNlX190aXRsZS1saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmhvbWUtbGFuZy1wcmVzcy1yZWxlYXNlX19leGNlcnB0IHtcbiAgICBjb2xvcjogIzA3MmU0MztcbiAgICBmb250LWZhbWlseTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIG1hcmdpbjogMDsgfVxuXG4uaG9tZS1ibG9nLWxhbmctYXJ0aWNsZXMge1xuICBwYWRkaW5nLWJvdHRvbTogMTByZW07IH1cbiAgLmhvbWUtYmxvZy1sYW5nLWFydGljbGVzIC5saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxuXG4gIEBpZiAkcHJvdG90eXBlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuICB9XG59XG4iLCIvKipcbiAqIFNwcml0ZSBzZXR0aW5nc1xuICovXG4kaWVTcHJpdGU6ICcubHQtaWU5JyAhZGVmYXVsdDtcbiRzcHJpdGU6IG1hcC1nZXQoJGljb25zLCBzcHJpdGUpICFkZWZhdWx0O1xuXG5cbi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDbG9zZSBCdXR0b25cbi8vICAxNS4gRHJpbGxkb3duXG4vLyAgMTYuIERyb3Bkb3duXG4vLyAgMTcuIERyb3Bkb3duIE1lbnVcbi8vICAxOC4gRmxleCBWaWRlb1xuLy8gIDE5LiBGb3Jtc1xuLy8gIDIwLiBMYWJlbFxuLy8gIDIxLiBNZWRpYSBPYmplY3Rcbi8vICAyMi4gTWVudVxuLy8gIDIzLiBNZXRlclxuLy8gIDI0LiBPZmYtY2FudmFzXG4vLyAgMjUuIE9yYml0XG4vLyAgMjYuIFBhZ2luYXRpb25cbi8vICAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjguIFJldmVhbFxuLy8gIDI5LiBTbGlkZXJcbi8vICAzMC4gU3dpdGNoXG4vLyAgMzEuIFRhYmxlXG4vLyAgMzIuIFRhYnNcbi8vICAzMy4gVGh1bWJuYWlsXG4vLyAgMzQuIFRpdGxlIEJhclxuLy8gIDM1LiBUb29sdGlwXG4vLyAgMzYuIFRvcCBCYXJcblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMDA4MjgzLFxuICBzZWNvbmRhcnk6ICM3NzcsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjZWM1ODQwLFxuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzBhMGEwYTtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnZnV0dXJhLXB0Jywgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogZmFsc2U7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG5cbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogNDIwcHgsXG4gIG1lZGl1bTogNzY4cHgsXG4gIHRhYmxldDogOTYwcHgsXG4gIGxhcmdlOiAxMDI1cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSB0YWJsZXQgbGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDEwcHgsXG4gIG1lZGl1bTogMjBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlO1xuJGhlYWRlci1zaXplczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6IDI0LFxuICAgICdoMic6IDIwLFxuICAgICdoMyc6IDE5LFxuICAgICdoNCc6IDE4LFxuICAgICdoNSc6IDE3LFxuICAgICdoNic6IDE2LFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiA0OCxcbiAgICAnaDInOiA0MCxcbiAgICAnaDMnOiAzMSxcbiAgICAnaDQnOiAyNSxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxNixcbiAgKSxcbik7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsICRib2R5LWZvbnQtY29sb3IpO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6IGZvcmVncm91bmQoJGJhZGdlLWJhY2tncm91bmQpO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogMXJlbTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IDAuNXJlbTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW07XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNS4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcblxuLy8gMTYuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxNy4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcblxuLy8gMTguIEZsZXggVmlkZW9cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzO1xuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5O1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMC4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6IGZvcmVncm91bmQoJGxhYmVsLWJhY2tncm91bmQpO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyAyMy4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI0LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4O1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtemluZGV4OiAtMTtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcbiRtYWluY29udGVudC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuXG4vLyAyNS4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI2LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogZm9yZWdyb3VuZCgkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCk7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjcuIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOC4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDI5LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzMC4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDMxLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGU6IGV2ZW47XG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMik7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xuXG4vLyAzMi4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heDogNjtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyAzMy4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzQuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDM1LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogMC43NXJlbTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC41cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6IDAuNXJlbTtcblxuLy8gMzYuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW07XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbiIsIi8vLyBCbG9jayBFbGVtZW50XG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGVsZW1lbnQgLSBFbGVtZW50J3MgbmFtZVxuQG1peGluIGVsZW1lbnQoJGVsZW1lbnQpIHtcbiAgICAmX18jeyRlbGVtZW50fSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8vIEJsb2NrIE1vZGlmaWVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1vZGlmaWVyIC0gTW9kaWZpZXIncyBuYW1lXG5AbWl4aW4gbW9kaWZpZXIoJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyAgVmVydGljYWxseSBhbGlnbiBpdGVtXG5AbWl4aW4gdmVydGljYWwtYWxpZ24oJHBvc2l0aW9uOiByZWxhdGl2ZSkge1xuICAgIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5cbi8vLy9cbi8vLyBAYXV0aG9yIE1pa2UgU3RyZWV0XG4vLy8gQGdyb3VwIFNwcml0ZVxuLy8vL1xuXG4vKipcbiAqIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG9yaWdpbmF0ZSBmcm9tIHRoZSBzYXNzLW1xIGxpYnJhcnkuXG4gKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGluY2x1ZGVkIGl0LCB5b3UgY2FuIGVsaW1pbmF0ZSB0aGUgYmVsb3dcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvYmxvYi9tYXN0ZXIvX21xLnNjc3NcbiAqL1xuXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XG4vLy9cbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXG4vLy8gQHJldHVybnMge051bWJlcn1cbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xuICAgICAgICBAd2FybiBcIkFzc3VtaW5nICN7JHB4fSB0byBiZSBpbiBwaXhlbHMsIGF0dGVtcHRpbmcgdG8gY29udmVydCBpdCBpbnRvIHBpeGVscy5cIjtcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKyAwcHgpOyAvLyBUaGF0IG1heSBmYWlsLlxuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG4vLy8gQWRkIGNsYXNzIGZvciA8SUU5IHNwcml0ZSBmYWxsYmFja1xuLy8vIEBncm91cCBzcHJpdGVcbi8vLyBAdHlwZSBTdHJpbmdcbiRpZVNwcml0ZTogJy5sdC1pZTknICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRoZSBgJHNwcml0ZWAgbWFwXG4vLy8gQGdyb3VwIHNwcml0ZVxuJHNwcml0ZTogbWFwLWdldCgkaWNvbnMsIHNwcml0ZSkgIWRlZmF1bHQ7XG5cbi8vLyBSZXRyaXZlIGFuIGF0dHJpYnV0ZXMgdmFsdWUgZm9yIGEgc3BlY2lmaWMgaWNvbiBpbiB0aGUgc3ByaXRlIG1hcFxuLy8vIEBwYXJhbSB7c3RyaW5nfSAkaWNvbiAtIFRoZSBuYW1lIG9mIHRoZSBpY29uXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRhdHRyIC0gVGhlIGF0dHJpYnV0ZSB5b3Ugd2lzaCB0byByZXRyaWV2ZSAoZS5nLiB3aWR0aClcbkBmdW5jdGlvbiBzcHJpdGUtYXR0cigkaWNvbiwgJGF0dHIpIHtcbiAgICAkbmV3SWNvbjogbWFwLWdldCgkaWNvbnMsICRpY29uKTtcbiAgICBAaWYgJG5ld0ljb24gPT0gbnVsbCB7XG4gICAgICAgIEB3YXJuIFwiQ2FuJ3QgZmluZCBhbiBpY29uIHdpdGggdGhlIG5hbWUgI3skaWNvbn1cIjtcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRuZXdJY29uLCAkYXR0cik7XG59XG5cbi8vLyBDcmVhdGUgYSBtYXAgd2l0aCB0aGUgc3BlY2lmaWVkIGljb24gb2YgYXR0cmlidXRlc1xuLy8vIEBwYXJhbSB7c3RyaW5nfSAkaWNvbiAtIFRoZSBuYW1lIG9mIHRoZSBpY29uXG5AZnVuY3Rpb24gaWNvbi1hdHRyKCRpY29uKSB7XG4gICAgJGF0dHI6IChcbiAgICAgICAgd2lkdGg6IHNwcml0ZS1hdHRyKCRpY29uLCB3aWR0aCksXG4gICAgICAgIGhlaWdodDogc3ByaXRlLWF0dHIoJGljb24sIGhlaWdodCksXG4gICAgICAgIHg6IHNwcml0ZS1hdHRyKCRpY29uLCBiYWNrZ3JvdW5kWCksXG4gICAgICAgIHk6IHNwcml0ZS1hdHRyKCRpY29uLCBiYWNrZ3JvdW5kWSlcbiAgICApO1xuXG4gICAgQHJldHVybiAkYXR0cjtcbn1cblxuLy8vIEdldCB0aGUgd2lkdGggb2YgYW4gaWNvbiBpbiBlbVxuLy8vIEBwYXJhbSB7c3RyaW5nfSAkaWNvbiAtIFRoZSBuYW1lIG9mIHRoZSBpY29uXG5AZnVuY3Rpb24gaWNvbl93aWR0aCgkaWNvbikge1xuICAgIEByZXR1cm4gbXEtcHgyZW0oc3ByaXRlLWF0dHIoJGljb24sIHdpZHRoKSk7XG59XG5cbi8vLyBHZXQgdGhlIGhlaWdodCBvZiBhbiBpY29uIGluIGVtXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRpY29uIC0gVGhlIG5hbWUgb2YgdGhlIGljb25cbkBmdW5jdGlvbiBpY29uX2hlaWdodCgkaWNvbikge1xuICAgIEByZXR1cm4gbXEtcHgyZW0oc3ByaXRlLWF0dHIoJGljb24sIGhlaWdodCkpO1xufVxuXG4vLy8gQXNzaWduIHRoZSBjb3JyZWN0IFNWRyBiYWNrZ3JvdW5kIGltYWdlIGFuZCBkaW1lbnNpb25zIHRvIHRoZSBlbGVtZW50XG4lc3ByaXRlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKG1hcC1nZXQoJHNwcml0ZSwgc3ZnUGF0aCkpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogbXEtcHgyZW0obWFwLWdldCgkc3ByaXRlLCB3aWR0aCkpIG1xLXB4MmVtKG1hcC1nZXQoJHNwcml0ZSwgaGVpZ2h0KSk7XG59XG4vLy8gQXNzaWduIHRoZSBjb3JyZWN0IFBORyBiYWNrZ3JvdW5kIGltYWdlIGFuZCBkaW1lbnNpb25zIHRvIHRoZSBlbGVtZW50XG4laWUtc3ByaXRlIHtcbiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKG1hcC1nZXQoJHNwcml0ZSwgcG5nUGF0aCkpO1xufVxuXG4vLy8gQWRkIGEgc3ByaXRlIFBORyBpY29uIGZvciBicm93c2VycyB3aXRoIHRoZSBgJGllU3ByaXRlYCBjbGFzcyB3aXRoIHB4IGZvciBwb3NpdGlvbmluZ1xuLy8vIEBwYXJhbSB7c3RyaW5nfSAkaWNvbiAtIFRoZSBuYW1lIG9mIHRoZSBpY29uXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICR0eXBlIFthbGxdIC0gVGhlIHByb3BlcnRpZXMgd2FudGVkIChjYW4gYmUgYGFsbGAsIGBzaXplYCBvciBgYmdgKS5cbi8vLyAtIGBhbGxgIGVuc3VyZXMgdGhlIGljb24gaGFzIHRoZSBiYWNrZ3JvdW5kLCBwb3NpdGlvbiBhbmQgc2l6ZS5cbi8vLyAtIGBzaXplYCBpcyBqdXN0IGZvciBkaW1lbnNpb25zXG4vLy8gLSBgYmdgIGp1c3QgIGFwcGxpZXMgdGhlIGJhY2tncm91bmRzIHRvIGFuIGVsZW1lbnRcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAuY2xhc3Mge1xuLy8vICAgICBAaW5jbHVkZSBpZS1zcHJpdGUoYXJyb3cpO1xuLy8vICAgICAmOmhvdmVyIHtcbi8vLyAgICAgICAgIEBpbmNsdWRlIGllLXNwcml0ZShhcnJvd0Rvd24sIGJnKVxuLy8vICAgICB9XG4vLy8gfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gT3V0cHV0XG4vLy8gLmx0LWllOSAuY2xhc3Mge1xuLy8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvc3ByaXRlLnBuZ1wiKTtcbi8vLyB9XG4vLy8gLmx0LWllOSAuY2xhc3Mge1xuLy8vICAgICB3aWR0aDogMjBweDtcbi8vLyAgICAgaGVpZ2h0OiAyMHB4O1xuLy8vICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNXB4IC01cHg7XG4vLy8gfVxuLy8vIC5sdC1pZTkgLmNsYXNzOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTM2cHg7XG4vLy8gfVxuQG1peGluIGllLXNwcml0ZSgkaWNvbiwgJHR5cGU6IGFsbCkge1xuICAgICRpY29uTWFwOiBpY29uLWF0dHIoJGljb24pO1xuXG4gICAgQGlmICRpZVNwcml0ZSB7XG4gICAgICAgICN7JGllU3ByaXRlfSAmIHtcbiAgICAgICAgICAgIEBpZiAkdHlwZSA9PSBhbGwge1xuICAgICAgICAgICAgICAgIC8vIFNoYXJlcyB0aGUgUE5HIGJhY2tncm91bmRcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVpZS1zcHJpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBPdXRwdXRzIGRpbWVuc2lvbnMgb2YgaWNvblxuICAgICAgICAgICAgQGlmICR0eXBlID09IGFsbCBvciAkdHlwZSA9PSBzaXplIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWFwLWdldCgkaWNvbk1hcCwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogbWFwLWdldCgkaWNvbk1hcCwgaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE91dHB1dHMgYmFja2dyb3VuZCBwb3NpdGlvblxuICAgICAgICAgICAgQGlmICR0eXBlID09IGFsbCBvciAkdHlwZSA9PSBiZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogKG1hcC1nZXQoJGljb25NYXAsIHgpIC0gNSkgKG1hcC1nZXQoJGljb25NYXAsIHkpIC0gNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBBZGQgYW4gU1ZHIHNwcml0ZSBpY29uIHVzaW5nIGVtIHBvc2l0aW9uaW5nLCB3aXRoIGEgUE5HIGljb24gZm9yIGJyb3dzZXJzIHdpdGggdGhlIGAkaWVTcHJpdGVgIGNsYXNzIHVzaW5nIHB4IHBvc2l0aW9uaW5nXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRpY29uIC0gVGhlIG5hbWUgb2YgdGhlIGljb25cbi8vLyBAcGFyYW0ge3N0cmluZ30gJHR5cGUgW2FsbF0gLSBUaGUgcHJvcGVydGllcyB3YW50ZWQgKGNhbiBiZSBgYWxsYCwgYHNpemVgIG9yIGBiZ2ApLlxuLy8vIC0gYGFsbGAgZW5zdXJlcyB0aGUgaWNvbiBoYXMgdGhlIGJhY2tncm91bmQsIHBvc2l0aW9uIGFuZCBzaXplLlxuLy8vIC0gYHNpemVgIGlzIGp1c3QgZm9yIGRpbWVuc2lvbnNcbi8vLyAtIGBiZ2AganVzdCAgYXBwbGllcyB0aGUgYmFja2dyb3VuZHMgdG8gYW4gZWxlbWVudFxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vIC5jbGFzcyB7XG4vLy8gICAgIEBpbmNsdWRlIHNwcml0ZShhcnJvdyk7XG4vLy8gICAgICY6aG92ZXIge1xuLy8vICAgICAgICAgQGluY2x1ZGUgc3ByaXRlKGFycm93RG93biwgYmcpXG4vLy8gICAgIH1cbi8vLyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBPdXRwdXRcbi8vLyAuY2xhc3Mge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zcHJpdGUuc3ZnXCIpO1xuLy8vICAgICBiYWNrZ3JvdW5kLXNpemU6IDM0LjI1ZW0gMzIuMTg3NWVtO1xuLy8vIH1cbi8vL1xuLy8vIC5sdC1pZTkgLmNsYXNzIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3Nwcml0ZS5wbmdcIik7XG4vLy8gfVxuLy8vXG4vLy8gLmNsYXNzIHtcbi8vLyAgICAgd2lkdGg6IDEuMzEyNWVtO1xuLy8vICAgICBoZWlnaHQ6IDEuMzEyNWVtO1xuLy8vICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMC4zMTI1ZW0gLTAuMzEyNWVtO1xuLy8vIH1cbi8vLyAubHQtaWU5IC5jbGFzcyB7XG4vLy8gICAgIHdpZHRoOiAyMHB4O1xuLy8vICAgICBoZWlnaHQ6IDIwcHg7XG4vLy8gICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01cHggLTVweDtcbi8vLyB9XG4vLy8gLmNsYXNzOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIuMjVlbSAtMi4yNWVtO1xuLy8vIH1cbi8vLyAubHQtaWU5IC5jbGFzczpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0zNnB4O1xuLy8vIH1cbkBtaXhpbiBzcHJpdGUoJGljb24sICR0eXBlOiBhbGwpIHtcbiAgICBAaWYgJHR5cGUgPT0gYWxsIHtcbiAgICAgICAgLy8gU2hhcmVzIHRoZSBiYWNrZ3JvdW5kc1xuICAgICAgICBAZXh0ZW5kICVzcHJpdGU7XG4gICAgfVxuXG4gICAgJGljb25NYXA6IGljb24tYXR0cigkaWNvbik7XG5cbiAgICAvLyBPdXRwdXRzIGRpbWVuc2lvbnMgaW4gZW1cbiAgICBAaWYgJHR5cGUgPT0gYWxsIG9yICR0eXBlID09IHNpemUge1xuICAgICAgICB3aWR0aDogbXEtcHgyZW0obWFwLWdldCgkaWNvbk1hcCwgd2lkdGgpICsgMSk7XG4gICAgICAgIGhlaWdodDogbXEtcHgyZW0obWFwLWdldCgkaWNvbk1hcCwgaGVpZ2h0KSArIDEpO1xuICAgIH1cblxuICAgIC8vIE91dHB1dHMgYmFja2dyb3VuZCBwb3NpdGlvbiBpbiBlbVxuICAgIEBpZiAkdHlwZSA9PSBhbGwgb3IgJHR5cGUgPT0gYmcge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBtcS1weDJlbShtYXAtZ2V0KCRpY29uTWFwLCB4KSAtIDVweCkgbXEtcHgyZW0obWFwLWdldCgkaWNvbk1hcCwgeSkgLSA1cHgpO1xuICAgIH1cblxuICAgIC8vIEFkZCBpZSBmYWxsYmFja1xuICAgIEBpbmNsdWRlIGllLXNwcml0ZSgkaWNvbiwgJHR5cGUpO1xuXG59XG5cbkBtaXhpbiBwbGFjZWhvbGRlci1jb2xvcigkY29sb3IpIHtcbiAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG59XG5cbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIEltcG9ydGFudFJ1bGUsIFNwYWNlQWZ0ZXJDb21tYSwgU2luZ2xlTGluZVBlclByb3BlcnR5XG5cbkBtaXhpbiAtbW90aW9uLXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cbiAgLnNsaWRlLWluLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBsZWZ0KTsgfVxuICAuc2xpZGUtb3V0LWRvd24gICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGRvd24pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdXApOyB9XG4gIC5zbGlkZS1vdXQtbGVmdCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgbGVmdCk7IH1cblxuICAvLyBGYWRlXG4gIC5mYWRlLWluICB7IEBpbmNsdWRlIG11aS1mYWRlKGluLCAgMCwgMSk7IH1cbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxuXG4gIC8vIEhpbmdlXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1yaWdodCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1ib3R0b20gICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGJvdHRvbSk7IH1cbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteCAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteSAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCwgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWJvdHRvbSAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBib3R0b20pOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQsIGNlbnRlcik7IH1cblxuICAvLyBTY2FsZVxuICAuc2NhbGUtaW4tdXAgICAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDAuNSwgMSk7IH1cbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XG4gIC5zY2FsZS1vdXQtdXAgICB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMS41KTsgfVxuICAuc2NhbGUtb3V0LWRvd24geyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDAuNSk7IH1cblxuICAvLyBTcGluXG4gIC5zcGluLWluICAgICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY3cpOyB9XG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XG4gIC5zcGluLWluLWNjdyAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGNjdyk7IH1cbiAgLnNwaW4tb3V0LWNjdyB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY2N3KTsgfVxuXG4gIC8vIFRyYW5zaXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktYW5pbWF0aW9ucyB7XG4gIC5zaGFrZSAgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cbiAgLnNwaW4tY2N3IHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKGNjdykpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24od2lnZ2xlKTsgfVxuXG4gIC5zaGFrZSxcbiAgLnNwaW4tY3csXG4gIC5zcGluLWNjdyxcbiAgLndpZ2dsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiAgLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgYW5pbWF0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gYXBwZW5kIFt0cnVlXSAtIERlZmluZXMgaWYgc2VsZWN0b3JzIGFyZSBjaGFpbmVkIHRvIHRoZSBzZWxlY3RvciAoYC5jbGFzcy5lbnRlcmApLCBvciBhcHBlbmRlZCBhcyBhIG5ldyBjbGFzcyAoYC5jbGFzcy1lbnRlcmApLlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWyctYWN0aXZlJ10gLSBTdWZmaXggdG8gYWRkIHRvIHRoZSBhY3RpdmUgc3RhdGUgY2xhc3MuXG4kbW90aW9uLXVpLWNsYXNzZXM6IChcbiAgY2hhaW46IHRydWUsXG4gIHByZWZpeDogJ211aS0nLFxuICBhY3RpdmU6ICctYWN0aXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0ZSBuYW1lcyB0byByZWZlcmVuY2Ugd2hlbiB3cml0aW5nIG1vdGlvbiBjbGFzc2VzLiBUbyB1c2UgbXVsdGlwbGUgY2xhc3MgbmFtZXMgZm9yIG9uZSBzdGF0ZSwgZW50ZXIgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBvbmUgc3RyaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zdGF0ZXM6IChcbiAgaW46ICdlbnRlcicsXG4gIG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG4gIGRlZmF1bHQ6IDUwMG1zLFxuICBzbG93OiA3NTBtcyxcbiAgZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG4gIGRlZmF1bHQ6IDAsXG4gIHNob3J0OiAzMDBtcyxcbiAgbG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuICBkZWZhdWx0OiBsaW5lYXIsXG4gIGxpbmVhcjogbGluZWFyLFxuICBlYXNlOiBlYXNlLFxuICBlYXNlLWluOiBlYXNlLWluLFxuICBlYXNlLW91dDogZWFzZS1vdXQsXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcbiAgYm91bmNlLWluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSksXG4gIGJvdW5jZS1vdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG4gIHNsaWRlLWFuZC1mYWRlOiBmYWxzZSxcbiAgaGluZ2UtYW5kLWZhZGU6IHRydWUsXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuICBzcGluLWFuZC1mYWRlOiB0cnVlLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkZWZmZWN0cy4uLikge1xuICAkb2JqOiAtbXVpLXByb2Nlc3MtYXJncygkZWZmZWN0cy4uLik7XG4gICRvYmo6IG1hcC1yZW1vdmUoJG9iaiwgbmFtZSk7XG5cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICBAZWFjaCAkcGN0LCAkcHJvcHMgaW4gJG9iaiB7XG4gICAgICAjey1tdWkta2V5ZnJhbWUtcGN0KCRwY3QpfSB7XG4gICAgICAgIC8vIExhc3RseSwgaXRlcmF0ZSB0aHJvdWdoIGVhY2ggQ1NTIHByb3BlcnR5IHdpdGhpbiBhIHBlcmNlbnRhZ2UgYW5kIHByaW50IGl0IG91dFxuICAgICAgICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRwcm9wcyB7XG4gICAgICAgICAgI3skcHJvcH06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHN0cmluZyBmb3IgYSBDU1Mga2V5ZnJhbWUsIGJ5IGNvbnZlcnRpbmcgYSBsaXN0IG9mIG51bWJlcnMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkaW5wdXQgLSBMaXN0IG9mIG51bWJlcnMgdG8gdXNlLlxuLy8vIEByZXR1cm4ge1N0cmluZ30gQSBzZXQgb2YgY29tbWEtc2VwYXJhdGVkIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtcGN0KCRpbnB1dCkge1xuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkaW5wdXQpID09ICdudW1iZXInIHtcbiAgICAkb3V0cHV0OiAoJGlucHV0ICogMSUpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbGlzdCcge1xuICAgIEBlYWNoICRpIGluICRpbnB1dCB7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgKCRpICogMSUpLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXBzLi4uIC0gQSBzZXJpZXMgb2YgbWFwcyB0byBtZXJnZSwgYXMgaW5kaXZpZHVhbCBwYXJhbWV0ZXJzLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBrZXlmcmFtZSBvYmplY3QuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRtYXBzLi4uKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBtYXAgcGFzc2VkIGluXG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgIEBpZiB0eXBlLW9mKCRtYXApID09ICdzdHJpbmcnIHtcbiAgICAgICRtYXA6IGNhbGwoJG1hcCk7XG4gICAgfVxuXG4gICAgJG1hcDogLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKTtcblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIGluIHRoZSBtYXBcbiAgICAvLyAka2V5IGlzIHRoZSBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgLy8gJHZhbHVlIGlzIGEgbWFwIG9mIENTUyBwcm9wZXJ0aWVzXG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgJG5ldy12YWx1ZTogKCk7XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbmV3LW1hcCwgJGtleSkge1xuICAgICAgICAvLyBJZiB0aGUgbWFwIGFscmVhZHkgaGFzIHRoZSBrZXlmcmFtZSAlLCBhcHBlbmQgdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAtbXVpLW1lcmdlLXByb3BlcnRpZXMobWFwLWdldCgkbmV3LW1hcCwgJGtleSksICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgbWFwIHdpdGggdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsbHksIG1lcmdlIHRoZSBtb2RpZmllZCBrZXlmcmFtZSB2YWx1ZSBpbnRvIHRoZSBvdXRwdXQgbWFwXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJG5ldy12YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1ha2UgYSBuYW1lIGZvciB0aGUga2V5ZnJhbWVzXG4gICQtbXVpLWN1c3RvbTogJC1tdWktY3VzdG9tICsgMSAhZ2xvYmFsO1xuICAkbWFwLW5hbWU6IChuYW1lOiAnY3VzdG9tLSN7JC1tdWktY3VzdG9tfScpO1xuICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAkbWFwLW5hbWUpO1xuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyB0d28gbWFwcyBvZiBDU1MgcHJvcGVydGllcyBpbnRvIG9uZSBtYXAuIElmIGJvdGggbWFwcyBoYXZlIGEgdHJhbnNmb3JtIHByb3BlcnR5LCB0aGUgdmFsdWVzIGZyb20gZWFjaCB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7TWFwfSAkb25lIC0gRmlyc3QgbWFwIHRvIG1lcmdlLlxuLy8vIEBwYXJhbSB7TWFwfSAkdHdvIC0gU2Vjb25kIG1hcCB0byBtZXJnZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktbWVyZ2UtcHJvcGVydGllcygkb25lLCAkdHdvKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkb25lLCB0cmFuc2Zvcm0pIGFuZCBtYXAtaGFzLWtleSgkdHdvLCB0cmFuc2Zvcm0pIHtcbiAgICAkdHJhbnNmb3JtOiBqb2luKG1hcC1nZXQoJG9uZSwgdHJhbnNmb3JtKSwgbWFwLWdldCgkdHdvLCB0cmFuc2Zvcm0pKTtcbiAgICAkb25lOiBtYXAtbWVyZ2UoJG9uZSwgKHRyYW5zZm9ybTogJHRyYW5zZm9ybSkpO1xuICAgICR0d286IG1hcC1yZW1vdmUoJHR3bywgdHJhbnNmb3JtKTtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRvbmUsICR0d28pO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzbGlkaW5nIHRyYW5zaXRpb24gYnkgdHJhbnNsYXRpbmcgdGhlIGVsZW1lbnQgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtsZWZ0XSAtIERpcmVjdGlvbiB0byBzbGlkZSB0by4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbGVmdCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzbGlkZTogc2xpZGUoJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICAvLyBDU1MgT3V0cHV0XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrXG4pIHtcbiAgLy8gUm90YXRpb24gZGlyZWN0aW9ucyB3aGVuIGhpbmdpbmcgZnJvbSBiYWNrIHZzLiBmcm9udFxuICAkcm90YXRpb24tYW1vdW50OiA5MGRlZztcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgKTtcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkaXJlY3Rpb24gW2N3XSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vIFxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSwgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGlmICRhdXRvLWluc2VydC1icmVha3BvaW50cyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gT3V0cHV0cyBDU1MgY2xhc3NlcyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gZm91bmRhdGlvbi1ncmlkKFxuICAkcm93OiAncm93JyxcbiAgJGNvbHVtbjogJ2NvbHVtbicsXG4gICRjb2x1bW4tcm93OiAnY29sdW1uLXJvdycsXG4gICRndXR0ZXI6ICdndXR0ZXInLFxuICAkcHVzaDogJ3B1c2gnLFxuICAkcHVsbDogJ3B1bGwnLFxuICAkY2VudGVyOiAnY2VudGVyZWQnLFxuICAkdW5jZW50ZXI6ICd1bmNlbnRlcmVkJyxcbiAgJGNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAkdW5jb2xsYXBzZTogJ3VuY29sbGFwc2UnLFxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgJGVuZDogJ2VuZCcsXG4gICRleHBhbmRlZDogJ2V4cGFuZGVkJyxcbiAgJGJsb2NrOiAnYmxvY2snXG4pIHtcbiAgLy8gUm93XG4gIC4jeyRyb3d9IHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgIC8vIENvbGxhcHNpbmdcbiAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3JpZC1jb2x1bW4tZ3V0dGVyKTtcblxuICAgICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIChmdWxsLXdpZHRoKSByb3dcbiAgICAmLiN7JGV4cGFuZGVkfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguI3skZXhwYW5kZWR9KSAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJGdyaWQtY29sdW1uLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgLy8gU3RhdGljICh1bnJlc3BvbnNpdmUpIHJvdyBndXR0ZXJzXG4gICAgICAvL1xuICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHtcbiAgICAgICAgJi4jeyRndXR0ZXJ9LSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuI3skY29sdW1ufSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2w7XG5cbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJi4jeyRlbmR9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC4jeyRyb3d9IC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gQ29sdW1uIHdpZHRoXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtc2l6ZSgkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgICAgQGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygtJGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skb2Zmc2V0fS0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSwgJy4jeyRjb2x1bW59Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skZXhwYW5kZWR9LiN7JHJvd30gLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0uI3skcm93fSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cblxuICAgIC8vIFBvc2l0aW9uaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjZW50ZXJ9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcyhjZW50ZXIpO1xuICAgIH1cblxuICAgIC8vIEd1dHRlciBhZGp1c3RtZW50XG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNlbnRlcn0sXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0wLFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tMCB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcbiAgICB9XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLiN7JGNvbHVtbn0tI3skYmxvY2t9IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICBAaWYgJGNvbHVtbiA9PSAnY29sdW1uJyBhbmQgaGFzLXZhbHVlKCRncmlkLWNvbHVtbi1hbGlhcykge1xuICAgIC4jeyRncmlkLWNvbHVtbi1hbGlhc30ge1xuICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldHMgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVybiB0aGVuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbHVtbi1ndXR0ZXIoKS4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sLWd1dHRlcigpLiBncmlkLWNvbC11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkb2xkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jb2x1bW4nXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGd1dHRlclxuLy8vICAgVGhlIGd1dHRlciB0byBhcHBseSB0byBjaGlsZCBlbGVtZW50cy4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtICRncmlkLWNvbHVtbi1ndXR0ZXIgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiB0aGUgJGdyaWQtY29sdW1uLWd1dHRlciBtYXAsIGluY2x1ZGluZyBicmVha3BvaW50IHNpemVzLlxuLy8vICAgLSBBIGZpeGVkIG51bWVyaWMgdmFsdWUgd2lsbCBhcHBseSB0aGlzIGd1dHRlciB0byBhbGwgYnJlYWtwb2ludHMuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJyxcbiAgJGd1dHRlcjogbnVsbFxuKSB7XG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICAvLyBJZiBhICRndXR0ZXIgdmFsdWUgaXMgcGFzc2VkXG4gICAgQGlmKCRndXR0ZXIpIHtcbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi50b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5yaWdodCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlO1xuICB9XG5cbiAgJi5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuYm9keSB7XG4gICAgcGFkZGluZy10b3A6IDcuMzc1cmVtO1xuXG4gICAgJi5vdmVyZmxvdy1oaWRkZW4ge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cblxuaDEsXG4uaGVhZGluZy0xIHtcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xufVxuXG5oMixcbi5oZWFkaW5nLTIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE2ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbn1cblxuaDMsXG4uaGVhZGluZy0zIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE2ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbn1cblxuaDQsXG4uaGVhZGluZy00IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxNmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG4uaGVhZGluZy0xLFxuLmhlYWRpbmctMixcbi5oZWFkaW5nLTMsXG4uaGVhZGluZy00IHtcbiAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG59XG5cbnAge1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG59XG5cbmEge1xuICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgIH1cbn1cblxuLnRvb2x0aXAge1xuICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1heC13aWR0aDogMTQuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucm93LS1wYWRkaW5nLWJpZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi41cmVtO1xufVxuXG4uZmFjZWJvb2stY29sb3Ige1xuICAgIGNvbG9yOiAjM2I1OTk4O1xufVxuXG4ubGlua2VkaW4tY29sb3Ige1xuICAgIGNvbG9yOiAjMDA3YmI1O1xufVxuXG4udHdpdHRlci1jb2xvciB7XG4gICAgY29sb3I6ICM1NWFjZWU7XG59XG5cblxuLmxvZ2luLW1vZGFsLW9wZW5lZCB7XG4gICAgbWFpbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5cbi8vIFJXRFxuXG4vLyAxMjUycHhcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc4LjI1cmVtKSB7XG4gICAgLnJvdyB7XG4gICAgICAgICYuZXhwYW5kZWQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdwYWRkaW5nLWJpZycpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VjdGlvbi1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgYm9keSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0LjVyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIGJvZHkge1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICB9XG5cbiAgICBoMSxcbiAgICAuaGVhZGluZy0xIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuXG4gICAgaDMsXG4gICAgLmhlYWRpbmctMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIH1cblxuICAgIC5zZWN0aW9uLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgfVxufVxuXG4iLCIkcHJpbWFyeTogIzAwODI4MztcbiRwcmltYXJ5LWhvdmVyOiAjMDE1ZjVmO1xuJGNhcmJvbi10cmFja2VyLWdyZWVuOiAjYjRiNjNjO1xuJGJsdWU6ICM2Y2EwY2E7XG4kc2Vjb25kYXJ5OiAjMDcyZTQzO1xuJGxpZ2h0LWdyZXk6ICNmNWY1ZjU7XG4kcGFsZS1ncmV5OiAjZjBmNWY5O1xuJGdyZXk6ICNkZGQ7XG4kZGFyay1ncmV5OiAjNzM4Njg0O1xuXG4kZXJyb3I6ICNmMDNlMzk7XG5cbiRydWJpay1mb250LWZhbWlseTogJ1J1YmlrJywgc2Fucy1zZXJpZjtcbiRmdXR1cmFwdC1ib2xkLWZvbnQtZmFtaWx5OiAnZnV0dXJhLXB0Jywgc2Fucy1zZXJpZjsvLydmdXR1cmEtcHQtYm9sZCcsIHNhbnMtc2VyaWY7XG5cbi8vIFJXRFxuJGJyZWFrcG9pbnQtbGFyZ2U6IDYzLjkzNzVyZW07IC8vIDEwMjNweDtcbiRicmVha3BvaW50LW1lZGl1bTogNTkuOTM3NXJlbTsgLy8gOTU5cHg7XG4kYnJlYWtwb2ludC1zbWFsbDogNDcuOTM3NXJlbTsgLy8gNzY3cHg7XG4kYnJlYWtwb2ludC1zbWFsbC12ZXJ0aWNhbDogMjYuMTg3NXJlbTtcblxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5zbGljay1zbGlkZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5zbGljay1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAuMzEyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xufVxuXG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2xpY2stYXJyb3cge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuXG4gICAgJi5zbGljay1wcmV2IHtcbiAgICAgICAgbGVmdDogLTJyZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgICBsZWZ0OiAtMy4xMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNsaWNrLW5leHQge1xuICAgICAgICByaWdodDogLTJyZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgICByaWdodDogLTMuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zbGljay1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgb3BhY2l0eTogLjM7XG4gICAgfVxufVxuIiwiLy9cbi8vICBHcmlkIGhlbHBlciAodG9nZ2xlIHRoaXMgb24gb3Igb2ZmIHRvIG92ZXJsYXkgYSBncmlkKVxuLy9cbi5ncmlkLWhlbHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2lubmVyJykge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXJvdygpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY29sJykge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwZjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IC40O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uYnV0dG9uIHtcbiAgICAkcm9vdDogJjtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiAxLjVlbTtcbiAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogJGZ1dHVyYXB0LWJvbGQtZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA2ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzEyNWVtO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogLjc1ZW0gMi41ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAyNTBtcywgYmFja2dyb3VuZCAyNTBtcywgYm9yZGVyLWNvbG9yIDI1MG1zO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpY29uJykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogLjYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQnKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMsIHZpc2liaWxpdHkgMjAwbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2FjdGlvbi10ZXh0Jykge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBpbmhlcml0O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignZmlsbGVkJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1ob3ZlcjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktaG92ZXI7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdiaWcnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignZnVsbCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuXG4gICAgJi5hY3Rpb24taGFwcGVuZCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGV4dCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdkZWZhdWx0LXRleHQnKSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYWN0aW9uLXRleHQnKSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1cmVtKSB7XG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQnKSB7XG4gICAgICAgICAgICAuaGlkZS1yd2Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnRleHQtYnV0dG9uIHtcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6ICRmdXR1cmFwdC1ib2xkLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDYyNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgbWFyZ2luLXRvcDogLjQzNzVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcZjEwNSc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtIEZvbnRBd2Vzb21lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtLjI1ZW07XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgZWFzZS1vdXQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycmVtKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbiwgdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignd2hpdGUnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4ubGFuZ3VhZ2Utc3dpdGNoZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICBmb250LWZhbWlseTogJGZ1dHVyYXB0LWJvbGQtZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDI1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgbWluLXdpZHRoOiA1LjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3BsYWNlaG9sZGVyJykge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjg3NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAuODEyNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcztcblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZsYWcnKSB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgd2lkdGg6IDJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYW1lJykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTA3JztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFyZW0gRm9udEF3ZXNvbWU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLjM3NWVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLS4yNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFsZS1ncmV5O1xuICAgICAgICBib3gtc2hhZG93OiAwIC4xMjVyZW0gLjMxMjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDIuODc1cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zLCB2aXNpYmlsaXR5IDI1MG1zO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpc3QtaXRlbScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGlzdC1saW5rJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gMS4zMTI1cmVtO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjUwbXM7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG5cbiAgICAgICAgLnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpc3Qge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnNpdGUtc2VhcmNoIHtcbiAgICBtYXJnaW4tbGVmdDogMS44NzVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZpZWxkJykge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IC4xODc1cmVtIDEuODc1cmVtIC4xODc1cmVtIC42MjVyZW07XG4gICAgICAgIHdpZHRoOiAxMS4yNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxZW0pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbicpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLjEyNXJlbTtcbiAgICAgICAgdG9wOiAuMTI1cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zO1xuICAgICAgICB3aWR0aDogMS4yNXJlbTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUoJ3NlYXJjaC1pY29uJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWhvdmVyO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgfVxuXG4gIC5yYWRpdXMge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXJvdW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1yYWRpdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRpY29uczogKFxuICAgIHNwcml0ZTogKHdpZHRoOiA2NjFweCwgaGVpZ2h0OiA4MTdweCwgc3ZnUGF0aDogJy4uLy4uL2Rpc3QvaW1nLy9zcHJpdGUuc3ZnJywgc3BhY2luZzogMTApLFxuICAgIGNhbGVuZGFyOiAod2lkdGg6IDIwcHgsIGhlaWdodDogMTlweCwgYmFja2dyb3VuZFg6IDAsIGJhY2tncm91bmRZOiAwKSxcbiAgICBjb21wYW55LWdyYXBoaWM6ICh3aWR0aDogMTUzcHgsIGhlaWdodDogMTY4cHgsIGJhY2tncm91bmRYOiAwLCBiYWNrZ3JvdW5kWTogLTI5cHgpLFxuICAgIGRvd25sb2FkLWx0OiAod2lkdGg6IDI0cHgsIGhlaWdodDogMjJweCwgYmFja2dyb3VuZFg6IDAsIGJhY2tncm91bmRZOiAtMjA3cHgpLFxuICAgIGV4cGFuZC1hcnJvdzogKHdpZHRoOiAxMHB4LCBoZWlnaHQ6IDdweCwgYmFja2dyb3VuZFg6IDAsIGJhY2tncm91bmRZOiAtMjM5cHgpLFxuICAgIGxvYWRpbmc6ICh3aWR0aDogMjBweCwgaGVpZ2h0OiAyMXB4LCBiYWNrZ3JvdW5kWDogMCwgYmFja2dyb3VuZFk6IC0yNTZweCksXG4gICAgbG9naW4tYmc6ICh3aWR0aDogNjUxcHgsIGhlaWdodDogNDM1cHgsIGJhY2tncm91bmRYOiAwLCBiYWNrZ3JvdW5kWTogLTI4N3B4KSxcbiAgICByZXBvcnQtZG9jOiAod2lkdGg6IDEycHgsIGhlaWdodDogMTVweCwgYmFja2dyb3VuZFg6IDAsIGJhY2tncm91bmRZOiAtNzMycHgpLFxuICAgIHNlYXJjaC1pY29uOiAod2lkdGg6IDEwcHgsIGhlaWdodDogMTBweCwgYmFja2dyb3VuZFg6IDAsIGJhY2tncm91bmRZOiAtNzU3cHgpLFxuICAgIHRlcm1zOiAod2lkdGg6IDMwcHgsIGhlaWdodDogMzBweCwgYmFja2dyb3VuZFg6IDAsIGJhY2tncm91bmRZOiAtNzc3cHgpLFxuKTtcbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uc29jaWFsLW5hdiB7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZWxlbWVudCcpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgLjVyZW07XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpbmsnKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4udG9wLWJhciB7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2VhcmNoLWJhcicpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeTtcbiAgICAgICAgaGVpZ2h0OiAyLjg3NXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAgIC5sYW5ndWFnZS1zd2l0Y2hlcixcbiAgICAgICAgLnNpdGUtc2VhcmNoLFxuICAgICAgICAubG9naW4tYnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaXRlLXNlYXJjaCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuNjg3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtYmFyJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAwIC4xMjVyZW0gLjMxMjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yKTtcbiAgICAgICAgaGVpZ2h0OiA0LjVyZW07XG5cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbm8tc2hhZG93Jykge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXItc29jaWFsLXdyYXBwZXInKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIC5zb2NpYWwtbmF2IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5rJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbmF2LWJhci1zb2NpYWwtdGl0bGUnKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbG9nby1saW5rJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtIDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ28nKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXItbWVudS13cmFwcGVyJykge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbmF2LWJhci1tZW51LXdyYXBwZXItc2Nyb2xsJykge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdtb2JpbGUtZHJvcGRvd24tdG9wJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbW9iaWxlLWJ1dHRvbnMnKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21vYmlsZS1idXR0b24nKSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDQuNXJlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDQuNXJlbTtcblxuXG4gICAgICAgICYudG9nZ2xlLW1lbnUtYnRuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgNTAwbXM7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQyJTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zLCB0b3AgNTAwbXMsIGJvdHRvbSA1MDBtcywgYmFja2dyb3VuZCA1MDBtcztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC0yMzMuMzMlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0yMzMuMzMlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5vcGVuZWQge1xuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gLm1lbnUtaXRlbSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJi5kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLS4zMTI1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLjMxMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcywgdmlzaWJpbGl0eSAxNTBtcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyNTBtcyAxMDBtcywgYmFja2dyb3VuZCAyNTBtcyAxMDBtcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyAyMDBtcywgdmlzaWJpbGl0eSAxNTBtcyAyMDBtcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubWVudS1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgNTBtcywgdmlzaWJpbGl0eSAyNTBtcyA1MG1zO1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDYyNWVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0LjVyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxLjI1cmVtO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDI1MG1zLCBiYWNrZ3JvdW5kIDI1MG1zO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5sb2dpbi1idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkZnV0dXJhcHQtYm9sZC1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICBsaW5lLWhlaWdodDogMi44NzVyZW07XG4gICAgcGFkZGluZzogMCAuODEyNXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0Jykge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaGlkZGVuJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ubWVudS1kcm9wZG93biB7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRvcDogNy4zNzVyZW07XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcywgdmlzaWJpbGl0eSAyNTBtcztcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAyNXB4IDAgcmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2lubmVyJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAuMTI1cmVtIC4zMTI1cmVtIDAgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtY29sdW1uJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMGM5Njk3O1xuICAgICAgICB3aWR0aDogMTcuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtbGlzdCcpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMS44NzVyZW0gMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtbGlzdC1lbGVtZW50Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtbGlzdC1lbGVtZW50LWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgICAgIHBhZGRpbmc6IC42ODc1cmVtIDRyZW0gLjgxMjVyZW0gMi41cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYWN0aXZlJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTA1JztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTZweC8xIEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDJyZW07XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtY29sdW1uJykge1xuICAgICAgICBtYXgtd2lkdGg6IDYwcmVtO1xuICAgICAgICBwYWRkaW5nOiAyLjM3NXJlbSAxLjg3NXJlbSAzLjEyNXJlbTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE3LjVyZW0pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2FjdGl2ZScpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudC10b3AnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMGM5Njk3O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCAwIC43NXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC42MjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3Rvb2xzJykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtbmV3cy1wb3B1bGFyJykge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuMjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9vbHMtcm93Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuMzc1cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAucmVzb3VyY2UtdGlsZSB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NhdGVnb3J5LWxhYmVsJykge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0b29scy1zdWItbWVudS1jb2x1bW4nKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuMTI1cmVtO1xuXG4gICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzBjOTY5NztcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwYzk2OTc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogLjgxMjVyZW0gMXJlbSAuNjI1cmVtIDA7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjEwNSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbSBGb250QXdlc29tZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYWJvdXQnKSB7XG4gICAgICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAuODc1cmVtIDFyZW0gLjY4NzVyZW0gMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uZHJvcGRvd24tdG9vbHMge1xuICAgIC5tZW51LWRyb3Bkb3duIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW5uZXInKSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0NTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJvdyB7XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICAgIC5tZW51LWRyb3Bkb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtbmV3cy1yb3cnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0uNjI1cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLS42MjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3BvcHVsYXItdG9vbHMtcm93Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtLjYyNXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0uNjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWVudS10aWxlIHtcbiAgICAkcm9vdDogJjtcbiAgICBjb2xvcjogI2ZmZjtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Bob3RvLXdyYXBwZXInKSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2UtaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgbWFyZ2luOiAuNDM3NXJlbSAwIC4zMTI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlLWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGF0ZScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgICAgICBtYXJnaW46IDAgMCAuMzc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V4Y2VycHQnKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyICYge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdwaG90by13cmFwcGVyJykge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoLjIxNSwgLjYxLCAuMzU1LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1lbnUtZHJvcGRvd24tcG9wdWxhciB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V4Y2VycHQnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4uYWRtaW4tYmFyIHtcbiAgICAudG9wLWJhcixcbiAgICAubWVudS1kcm9wZG93biB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgfVxufVxuXG5cbi8vIFJXRFxuXG4vLyAxMjAwcHhcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc1cmVtKSB7XG4gICAgLnRvcC1iYXIge1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXItc29jaWFsLXdyYXBwZXInKSB7XG4gICAgICAgICAgICAuc29jaWFsLW5hdiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZWxlbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIC4yNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICAgICAgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgLjYyNXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5kcm9wZG93bi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIDEwMjNweFxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcbiAgICAudG9wLWJhciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICAgICAgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IC44MTI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgLmRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMzc1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA5NTlweFxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzZWFyY2gtYmFyJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXInKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ28tbGluaycpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdtb2JpbGUtYnV0dG9ucycpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMi4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXItbWVudS13cmFwcGVyJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcGFkZGluZzogNy41cmVtIDAgNnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMsIG9wYWNpdHkgNTAwbXMsIHZpc2liaWxpdHkgNTAwbXM7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgICAgICYub3BlbmVkIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbmF2LWJhci1tZW51LXdyYXBwZXItc2Nyb2xsJykge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtbGlzdCcpIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICA+IC5tZW51LWl0ZW0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIC4xKTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDNlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAyLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5kcm9wZG93bi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjQ1LCAyNDUsIDI0NSwgLjEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogM2VtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDMwMG1zLCBiYWNrZ3JvdW5kIDMwMG1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYudG9nZ2xlZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHByaW1hcnk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXItc29jaWFsLXdyYXBwZXInKSB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnNvY2lhbC1uYXYge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIC4xKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdlbGVtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIC4xKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5rJykge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1iYXItc29jaWFsLXRpdGxlJykge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IC41NjI1cmVtIDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbW9iaWxlLWRyb3Bkb3duLXRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA0LjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDcsIDQ2LCA2OCwgLjIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxhbmd1YWdlLXN3aXRjaGVyIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbmFtZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdmbGFnJykge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC43NWVtO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMS41ZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncGxhY2hvbGRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGlzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAzcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21vYmlsZS1sb2dpbicpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcywgY29sb3IgMjAwbXM7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWhvdmVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnUtZHJvcGRvd24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW5uZXInKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtY29sdW1uJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0LWVsZW1lbnQnKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNDUsIDI0NSwgMjQ1LCAuMSk7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0LWVsZW1lbnQtbGluaycpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMi4yNXJlbTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtY29sdW1uJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Rvb2xzLXJvdycpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0b29scy1wb3B1bGFyLWNvbHVtbicpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0b29scy1zdWItbWVudS1jb2x1bW4nKSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIC4xKTtcblxuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMi4yNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kcm9wZG93bi10b29scyB7XG4gICAgICAgIC5tZW51LWRyb3Bkb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2lubmVyJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtYmFyJykge1xuICAgICAgICAgICAgaGVpZ2h0OiAzZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtYmFyLW1lbnUtd3JhcHBlcicpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21vYmlsZS1idXR0b25zJykge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtLjkzNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdtb2JpbGUtYnV0dG9uJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgd2lkdGg6IDNyZW07XG5cbiAgICAgICAgICAgICYudG9nZ2xlLW1lbnUtYnRuIHtcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbW9iaWxlLWRyb3Bkb3duLXRvcCcpIHtcbiAgICAgICAgICAgIHRvcDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICAgICAgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnUtZHJvcGRvd24ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtbGlzdC1lbGVtZW50LWxpbmsnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Rvb2xzLXN1Yi1tZW51LWNvbHVtbicpIHtcbiAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5zaXRlLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogJHNlY29uZGFyeTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS42MjVyZW07XG4gICAgcGFkZGluZy10b3A6IDEuNjI1cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbmF2LXJvdycpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYtbGlzdCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IC44NzVyZW07XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtLjYyNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtLjYyNXJlbTtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAubWVudS1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNi4yNXJlbTtcblxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxMDUnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC4yNWVtO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsb2dvdHlwZXMtdGl0bGUnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgd2lkdGg6IDEyLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ290eXBlcy1saXN0Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMCAycmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogOC43NXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDMuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbG9nb3R5cGVzLWxpc3QtZWxlbWVudCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ290eXBlcy1saXN0LXRhYmxlJykge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsb2dvdHlwZXMtbGlzdC10YWJsZS1jZWxsJykge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ290eXBlcy1saXN0LWltYWdlJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWF4LWhlaWdodDogNi4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdzb2NpYWwtY29sdW1uJykge1xuICAgICAgICAuc29jaWFsLW5hdiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjYyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2JvdHRvbS1jb2x1bW4nKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNzVyZW07XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNzUpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbicpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4uZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgcGFkZGluZy10b3A6IC42MjVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgICAgIG1hcmdpbjogMCAwIC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbnB1dCcpIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuNzVyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjkzNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMxMjVlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtIDEuMjVyZW07XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMC4yNXJlbSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbn1cblxuLm5ld3NsZXR0ZXItc2VjdGlvbi13aWRnZXQge1xuICAgIC5mb290ZXItbmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbnB1dCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG4gICAgLnNpdGUtZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci1uZXdzbGV0dGVyLXNlY3Rpb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW5wdXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbG9nb3R5cGVzLWNvbHVtbicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5zaXRlLWZvb3RlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ28tbGluaycpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xLjMxMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjEyNXJlbSAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbG9nbycpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjI1KTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xLjMxMjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yNSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjI1KTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbG9nb3R5cGVzLWNvbHVtbicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsb2dvdHlwZXMtbGlzdCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnc29jaWFsLWNvbHVtbicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMuMTI1cmVtO1xuXG4gICAgICAgICAgICAuc29jaWFsLW5hdiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci1uZXdzbGV0dGVyLXNlY3Rpb24ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYm90dG9tLWNvbHVtbicpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuMzc1cmVtO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC42MjVyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbC12ZXJ0aWNhbCkge1xuICAgIC5zaXRlLWZvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ28tbGluaycpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdi1saXN0Jykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5yZXBvcnQtdGlsZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNkOGQ4ZDg7XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsYXRlc3QnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC43NXJlbSAxLjI1cmVtO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNTYyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0uMTI1cmVtO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgncmVwb3J0LWRvYycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgcGFkZGluZzogMS4xMjVyZW0gMS4yNXJlbSAzLjYyNXJlbTtcblxuICAgICAgICA+IHAge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaG9tZXBhZ2UnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjMxMjVyZW0gMS42Nzg1cmVtIDEuNTYyNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWxpbmsnKSB7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLWluO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2RldGFpbHMnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC42ODc1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdob21lcGFnZScpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC44MTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcnknKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkYXRlJykge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDI1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxNmVtO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjEyNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaG9tZXBhZ2UnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAuMzEyNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlLWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbicpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4xMjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2hvbWVwYWdlJykge1xuICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgYm94LXNoYWRvdzogMCAuNjI1cmVtIC45Mzc1cmVtIDAgcmdiYSg1MCwgNTAsIDUwLCAuMSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2xhdGVzdCcpIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgM3JlbSAwIHJnYmEoNTAsIDUwLCA1MCwgLjE1KTtcbiAgICB9XG5cbiAgICAmOmhvdmVyICYge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1saW5rJykge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoLjIxNSwgLjYxLCAuMzU1LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhdGVnb3J5LWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgIHBhZGRpbmc6IC4yNXJlbSAuNjI1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICZbaHJlZl0ge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktaG92ZXI7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdzbWFsbCcpIHtcbiAgICAgICAgZm9udC1zaXplOiAuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IC42MjVyZW07XG4gICAgICAgIHBhZGRpbmc6IC4xMjVyZW0gLjMxMjVyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5yZXBvcnQtdGlsZSB7XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGF0ZXN0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogLjc1cmVtIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICAgICAgcGFkZGluZzogLjc1cmVtIC42MjVyZW07XG5cbiAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5saXN0LWl0ZW0ge1xuICAgICRyb290OiAmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuXG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1jb2x1bW4nKSB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdtZWRpdW0nKSB7XG4gICAgICAgICAgICB3aWR0aDogNDIuODYlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2JpZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1saW5rJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtZGF0ZScpIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjM3NXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAuMTI1cmVtIC42MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yNSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgIGxlZnQ6IDExLjExJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDExLjExJTtcbiAgICAgICAgd2lkdGg6IDIuMjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2JpZycpIHtcbiAgICAgICAgICAgIGxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB0b3A6IDEuMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1kYXRlLW1vbnRoJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZnV0dXJhcHQtYm9sZC1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGhlaWdodDogLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogLjc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtZGF0ZS1kYXknKSB7XG4gICAgICAgIGNvbG9yOiAjZjAzZTM5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmdXR1cmFwdC1ib2xkLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBtYXJnaW46IDAgMCAuMzc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlLWRhdGUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaGlnaCcpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZjAzZTM5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC4yNXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IC4zNzVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ25vLXRvcC1wYWRkaW5nJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbWVkaXVtJykge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2JpZycpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIC4xODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IC41NjI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtbGluaycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaW52ZXJ0ZWQnKSB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGF0ZScpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE2ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYmlnJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAuODc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2lubGluZScpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICA+IHAge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbWVkaXVtJykge1xuICAgICAgICAgICAgd2lkdGg6IDU3LjE0JTtcblxuICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYmlnJykge1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcblxuICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyZWFkLW1vcmUnKSB7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2JpZycpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC45cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ21vYmlsZScpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignbGFzdCcpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignaGlkZGVuJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCduby1ib3JkZXInKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2hvbWUtbmV3cycpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdoYWxmJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtbGluaycpIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKC4yMTUsIC42MSwgLjM1NSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgLmxpc3QtaXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdob21lLW5ld3MnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdtZWRpdW0nKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdiaWcnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncmVhZC1tb3JlJykge1xuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ21vYmlsZScpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLmxpc3QtaXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWNvbHVtbicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdtZWRpdW0nKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdiaWcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ21lZGl1bScpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdiaWcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2JpZycpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAuODc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncmVhZC1tb3JlJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtZGF0ZScpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWRhdGUnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbW9iaWxlLWhpZGUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi50b29sdGlwLWljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkO1xuICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjYyNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMS42MjVyZW07XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyguODEyNXJlbSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICc/JztcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxufVxuXG4udG9vbHRpcC13cmFwIHtcbiAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgIC50b29sdGlwLWljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC40Mzc1cmVtO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4ucmVzb3VyY2UtdGlsZSB7XG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2Fib3V0Jykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjYXRlZ29yeS1pY29uJykge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogMS44NzVyZW07XG4gICAgICAgIHdpZHRoOiAxLjg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhYm91dC1pY29uJykge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxLjg3NXJlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxLjg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjYXRlZ29yeS1sYWJlbCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tbGVmdDogLjYyNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjM3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjMxMjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtbGluaycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5rJykge1xuICAgICAgICBmb250LWZhbWlseTogJGZ1dHVyYXB0LWJvbGQtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uYnJlYWRjcnVtYnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1NTBtcyBlYXNlLW91dCwgb3BhY2l0eSA1NTBtcywgdmlzaWJpbGl0eSA1NTBtcztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGlzdCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC42ODc1cmVtIDAgLjYyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdlbGVtZW50Jykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjQzNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdibHVlJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcsIDQ2LCA2OCwgLjc1KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zaG93aW5nLXZpZGVvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5yZWxhdGVkLWxpbmsge1xuICAgICRyb290OiAmO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDgsIDE2MCwgMjAxLCAuMSk7XG4gICAgYm94LXNoYWRvdzogMCAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xNSk7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgcGFkZGluZzogLjQzNzVyZW0gMS4zMTI1cmVtIDEuNXJlbTtcbiAgICB3aWR0aDogNjQlO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwIC42ODc1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAgLjMxMjVyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtbGluaycpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlJykge1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLWluO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgbWFyZ2luOiAuNDM3NXJlbSAwIC4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgICYucmVsYXRlZC1saW5rLWRlc2Mge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgbWFyZ2luOiAuMjVyZW0gMCAuODEyNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdsZWZ0Jykge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAtLjc1cmVtIDIuMzc1cmVtIDAgLTEyLjVyZW07XG4gICAgfVxuXG4gICAgJjpob3ZlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UnKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllciguMjE1LCAuNjEsIC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiArICoge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzguMjVyZW0pIHtcbiAgICAucmVsYXRlZC1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2xlZnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEzJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgLnJlbGF0ZWQtbGluayB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5yZWxhdGVkLWxpbmsge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuMzEyNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS4zMTI1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4zMTI1cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwtdmVydGljYWwpIHtcbiAgICAucmVsYXRlZC1saW5rIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgLnJvdyB7XG4gICAgICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjg3NXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgbWFyZ2luOiAuMzEyNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICAmLnJlbGF0ZWQtbGluay1kZXNjIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC42MjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IC43NXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4ubmV3c2xldHRlci1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL25ld3NsZXR0ZXItYmcuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDIwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZy1ib3R0b206IDUuNTYyNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogNS4zNzVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS4xMjVyZW07XG4gICAgfVxuXG4gICAgLnRleHR3aWRnZXQge1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi53cC1jYXB0aW9uIHtcbiAgICBtYXJnaW46IDMuMDYyNXJlbSAtMTIuNXJlbSAzLjc1cmVtO1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdiYXInKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgNDYsIDY4LCAuNSk7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IC42MjVyZW0gMS44NzVyZW0gLjg3NXJlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0LXdyYXAnKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2hlYWQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignc2hhcmUnKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0Jykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2hhcmUtd3JhcCcpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NoYXJlLWJ0bicpIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjUpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjc1cmVtO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdzaGFyZS1pY29uJykge1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbi5zaW5nbGUge1xuICAgIC53cC1jYXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAzLjA2MjVyZW0gMCAzLjc1cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzguMjVyZW0pIHtcbiAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRyZW0pIHtcbiAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMy4wNjI1cmVtIC03LjVyZW0gMy43NXJlbTtcbiAgICB9XG5cbiAgICAuc2luZ2xlIHtcbiAgICAgICAgLndwLWNhcHRpb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAzLjA2MjVyZW0gMCAzLjc1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMi41cmVtIC0yLjg3NXJlbSAzcmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2JhcicpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogLjc1cmVtIDFyZW0gMnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0LXdyYXAnKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NoYXJlLXdyYXAnKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2hlYWQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3NoYXJlJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NoYXJlLWJ0bicpIHtcbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2luZ2xlIHtcbiAgICAgICAgLndwLWNhcHRpb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAyLjVyZW0gMCAzcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC53cC1jYXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAycmVtIC0xLjMxMjVyZW0gMi41cmVtO1xuICAgIH1cblxuICAgIC5zaW5nbGUge1xuICAgICAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDJyZW0gLTEuMzEyNXJlbSAyLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLndwLWNhcHRpb24ge1xuICAgICAgICBtYXJnaW46IDJyZW0gLTFyZW0gMi41cmVtO1xuICAgIH1cblxuICAgIC5zaW5nbGUge1xuICAgICAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDJyZW0gLTFyZW0gMi41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLmtleS10ZXJtLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIC4xKTtcbiAgICBib3gtc2hhZG93OiAwIC4zMTI1cmVtIDEuNTYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgLjE1KTtcbiAgICBwYWRkaW5nOiAxLjE4NzVyZW0gMS4xODc1cmVtIDEuODc1cmVtO1xuICAgIHdpZHRoOiAyMy43NXJlbTtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYXJ0aWNsZScpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzLjc1cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC4yNXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgndGVybXMnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FydGljbGUtdGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC42ODc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FydGljbGUtdGl0bGUtbGluaycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FydGljbGUtZGVzYycpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjEyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignbGVmdCcpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMCAzLjg3NXJlbSAxcmVtIDA7XG4gICAgfVxufVxuXG4ucG9zdC1jb250ZW50IHtcbiAgICAua2V5LXRlcm0tYmxvY2sge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdhcnRpY2xlLWRlc2MnKSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxMjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjEyNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAgIC5rZXktdGVybS1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdhcnRpY2xlJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYXJ0aWNsZS10aXRsZScpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLmtleS10ZXJtLWJsb2NrIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5yZXBvcnQtYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xMyk7XG4gICAgbWFyZ2luOiAwIC0zLjVyZW0gM3JlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMy41cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMi4yNXJlbSAwIDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWxpbmsnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbicpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS44MTI1cmVtO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICAmLnJlcG9ydC1ibG9jay1kZXNjIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAuNjI1cmVtKSB7XG4gICAgLnJlcG9ydC1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMnJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMnJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWxpbmsnKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0cmVtKSB7XG4gICAgLnJlcG9ydC1ibG9jayB7XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICAucmVwb3J0LWJsb2NrIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yLjg3NXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMi44NzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi44NzVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuODc1cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAucmVwb3J0LWJsb2NrIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjMxMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjMxMjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMzEyNXJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLnJlcG9ydC1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgIC5yb3cge1xuICAgICAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnJlcG9ydC1pdGVtIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWxpbmsnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC40Mzc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlLWxpbmsnKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjYXRlZ29yeScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2RhdGUnKSB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IC44NzVyZW07XG4gICAgfVxuXG4gICAgJjpob3ZlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtbGluaycpIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKC4yMTUsIC42MSwgLjM1NSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnBsYXktYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm94LXNoYWRvdzogMCAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xNSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogOS4zNXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogOS4zNXJlbTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaWNvbicpIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0uNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjEpLCAjZmZmKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXJlbTtcbiAgICAgICAgYm90dG9tOiAtLjMxMjVyZW07XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBsZWZ0OiAtLjMxMjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0uMzEyNXJlbTtcbiAgICAgICAgdG9wOiAtLjMxMjVyZW07XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAucGxheS1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDQuNXJlbTtcbiAgICAgICAgd2lkdGg6IDQuNXJlbTtcblxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ljb24nKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0uMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYm90dG9tOiAtLjE2cmVtO1xuICAgICAgICAgICAgbGVmdDogLS4xNnJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAtLjE2cmVtO1xuICAgICAgICAgICAgdG9wOiAtLjE2cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5leHRlcm5hbC1saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ljb24nKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuNzVlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtLjEyNWVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuLnBvc3QtY29udGVudCB7XG4gICAgcCB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgJi5leHRlcm5hbC1saW5rIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5zdGlja3ktbmF2YmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXk7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcztcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpc3QnKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0LWVsZW1lbnQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0LWVsZW1lbnQtbGluaycpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMS4xMjVyZW07XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gMS4yNXJlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zIGVhc2Utb3V0LCBjb2xvciAyNTBtcyBlYXNlLW91dDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYWN0aXZlJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdzdGlja3knKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgLjEyNXJlbSAuMzEyNXJlbSAwIHJnYmEoMCwgMCwgMCwgLjIpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgLnN0aWNreS1uYXZiYXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0LWVsZW1lbnQtbGluaycpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gLjc1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5zdGlja3ktbmF2YmFyIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncm93Jykge1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGlzdCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpc3QtZWxlbWVudCcpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4ubG9naW4tbW9kYWwge1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTc5LCAxODIsIDYxLCAuMjUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDcuMzc1cmVtKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNy4zNzVyZW07XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTUwbXMgZWFzZS1vdXQsIG9wYWNpdHkgNTUwbXMsIHZpc2liaWxpdHkgNTUwbXM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIEBpbmNsdWRlIHNwcml0ZSgnbG9naW4tYmcnKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd2aWV3Jykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDUwMG1zIGVhc2Utb3V0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdkaXNwbGF5Jykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcigndmlzaWJsZScpIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcigndHJhbnNmb3JtJykge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zIGVhc2UtaW4sIHRyYW5zZm9ybSA1MDBtcyBlYXNlLWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDMuMjVyZW0gYXV0byAxLjM3NXJlbTsgLy8gMCBhdXRvIDIuNXJlbVxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZmllbGQtd3JhcCcpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMi4xMjVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjEyNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGVmdDogLjYyNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMS41NjI1cmVtO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDIwMG1zO1xuICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgJi5maWxsZWQge1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZpZWxkLWVycm9yJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd2aXNpYmxlJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogLjI1cmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgICZbdHlwZT0ndGV4dCddLFxuICAgICAgICAmW3R5cGU9J2VtYWlsJ10sXG4gICAgICAgICZbdHlwZT0ncGFzc3dvcmQnXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNvbG9yIDIwMG1zLCBwYWRkaW5nIDIwMG1zLCBjb2xvciAyMDBtcztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICAgICAgJi5maWxsZWQsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuMzc1cmVtIDFyZW0gLjI1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHJpbWFyeTtcblxuICAgICAgICAgICAgICAgICYgKyBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gMXJlbSAuMjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbS1jb2xvciAyMDBtcywgcGFkZGluZyAyMDBtcywgY29sb3IgMjAwbXM7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIG9wdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubG9naW4tYWRkaXRpb25hbCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIuMjVyZW07XG4gICAgfVxuXG4gICAgLmxvZ2luLXJlbWVtYmVyIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAubG9naW4tZm9yZ290IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxvZ2luLXN1Ym1pdCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIuNzVyZW07XG4gICAgfVxuXG4gICAgLmxvZ2luLW1lc3NhZ2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYWNjb3VudC1ub3RpY2UnKSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FjY291bnQtbm90aWNlLWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYW4gQWNjb3VudFxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdGVyLXdoeScpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhbGUtZ3JleTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAzcHggI2ZmZjtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIHBhZGRpbmc6IDMuMjVyZW0gMS44NzVyZW0gMi41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdGVyLXdoeS13aWRnZXQnKSB7XG4gICAgICAgIC50ZXh0d2lkZ2V0IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIuMjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMXJlbTtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdGVyLXdoeS10aXRsZScpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjc1cmVtO1xuICAgIH1cblxuICAgIC5yZWdpc3Rlci1uZXdzbGV0dGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICB9XG5cbiAgICAvLyBGb3Jnb3R0ZW4gcGFzc3dvcmRcbiAgICBAaW5jbHVkZSBlbGVtZW50KCdmb3Jnb3R0ZW4tcGFzc3dvcmQnKSB7XG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgJi5lbWFpbC1zZW50IHtcbiAgICAgICAgICAgICAgICAuZm9yZ290dGVuLXBhc3N3b3JkLWVtYWlsLFxuICAgICAgICAgICAgICAgIC5sb2dpbi1zdWJtaXQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZvcmdvdHRlbi1wYXNzd29yZC1kZXNjJykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAzLjM3NXJlbTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd2aXNpYmxlJykge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG4ubW9kYWwtY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFsLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjYyNXJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGNvbnRlbnQ6ICfinJQnO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXM7XG4gICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgfVxufVxuXG4ubG9naW4tbW9kYWwtb3BlbmVkIHtcbiAgICAubG9naW4tbW9kYWwge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMHJlbSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgIH1cbn1cblxuLmFkbWluLWJhciB7XG4gICAgLmxvZ2luLW1vZGFsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuICAgIC5sb2dpbi1tb2RhbCB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDQuNXJlbSk7XG4gICAgICAgIHRvcDogNC41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdGVyLXdoeScpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAubG9naW4tbW9kYWwge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzcmVtKTtcbiAgICAgICAgdG9wOiAzcmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdGVyJykge1xuICAgICAgICAgICAgPiAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4ucmVwb3J0LXBvcHVwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmNWY5O1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDI1cHggMCByZ2JhKDAsIDAsIDAsIC4xNSk7XG4gICAgY29sb3I6ICMwNzJlNDQ7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDM2LjI1cmVtO1xuICAgIHBhZGRpbmc6IDEuMTg3NXJlbSAxLjE4NzVyZW0gMS43NXJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA5NiU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJGZ1dHVyYXB0LWJvbGQtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTI1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4zMTI1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxNjY3ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9ucycpIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdidG4nKSB7XG4gICAgICAgIGNvbG9yOiAjMDcyZTQ0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE2NjdlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS42MjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAn4pyVJztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYWNjZXB0LWJ0bicpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0LjM3NXJlbTtcbiAgICB9XG59XG5cbi5yZXBvcnQtcG9wdXAtd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzLCB2aXNpYmlsaXR5IC40cztcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICAmLnZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uaG9tZS10b3Age1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2hvbWVwYWdlLXRvcC1iYWNrZ3JvdW5kLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWluLWhlaWdodDogNDgwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDZyZW07XG4gICAgcGFkZGluZy10b3A6IDQuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyZXBvcnQtY29sdW1uJykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnJlcG9ydC10aWxlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAuNjI1cmVtO1xuICAgICAgICAgICAgdG9wOiAtMi4zNzVyZW07XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ob21lLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gICAgcGFkZGluZy10b3A6IDIuMzEyNXJlbTtcbn1cblxuLmhvbWUtcmVwb3J0cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcmllcycpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDEuMTg3NXJlbSAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NhdGVnb3J5Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMi4zNzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcnktYnV0dG9uJykge1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2FjdGl2ZScpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncmVwb3J0cycpIHtcbiAgICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3NtYWxsJykge1xuICAgICAgICAgICAgICAgICAgICAmLnJvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM3LjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAvL3dpZHRoOiA4OC4yNCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyZXBvcnRzLWl0ZW0nKSB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdoaWRkZW4nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdsYXN0Jykge1xuICAgICAgICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhvbWUtc2VjdGlvbi10b3Age1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5rJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAuMTg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignbm8tYm9yZGVyJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLmhvbWUtY29tcGFueS1yZXBvcnRzLFxuLmhvbWUtbmV3cyB7XG4gICAgbWFyZ2luLXRvcDogNy4yNXJlbTtcbn1cblxuLmhvbWUtY29tcGFueS1yZXBvcnRzIHtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JvdycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDgsIDE2MCwgMjAxLCAuMSk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjA2MjVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjE4NzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMTAuNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgc3ByaXRlKCdjb21wYW55LWdyYXBoaWMnKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS13cmFwcGVyJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuMzc1cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLnRvb2x0aXAtaWNvbiB7XG4gICAgICAgICAgICBsZWZ0OiAtMi4yNXJlbTtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC4xMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjY4NzVyZW07XG4gICAgfVxuXG4gICAgJiArIC5ob21lLW5ld3Mge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbn1cblxuLmhvbWUtbmV3cyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0b3AnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxufVxuXG5cbi5ob21lLWF3YXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIC4xKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjc1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAuNzVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcblxuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMDYyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlJykge1xuICAgICAgICBib3JkZXI6IHNvbGlkIC4xODc1cmVtICNmZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgLjEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xNSk7XG4gICAgfVxufVxuXG4uaG9tZS1yZXNvdXJjZXMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZy1ib3R0b206IDUuMTg3NXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMy4wNjI1cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2dyaWQtaW5uZXInKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDY4Ljc1cmVtKSB7IC8vIDExMDBweFxuICAgIC5ob21lLWNvbXBhbnktcmVwb3J0cyxcbiAgICAuaG9tZS1uZXdzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMy4yNXJlbTtcbiAgICB9XG5cbiAgICAuaG9tZS1jb21wYW55LXJlcG9ydHMgKyAuaG9tZS1uZXdzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuaG9tZS1uZXdzIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndG9wLXRpdGxlJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndG9wLWxpbmsnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG4gICAgLmhvbWUtY29tcGFueS1yZXBvcnRzLFxuICAgIC5ob21lLW5ld3Mge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIC5ob21lLWF3YXJkIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgICAgIGgxLFxuICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ob21lLXJlc291cmNlcyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2dyaWQnKSB7XG4gICAgICAgICAgICA+IC5yb3cge1xuICAgICAgICAgICAgICAgID4gLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5ob21lLXRvcCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMi4xMjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncmVwb3J0LWNvbHVtbicpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogNC41cmVtIC0xcmVtIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC4zMTI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgICAgIC5yZXBvcnQtdGlsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTIuMjVyZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaG9tZS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gICAgfVxuXG4gICAgLmhvbWUtcmVwb3J0cyB7XG4gICAgICAgIC5saXN0LWl0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncm93Jykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdzbWFsbCcpIHtcblxuICAgICAgICAgICAgICAgICAgICAuc21hbGwtNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjkuMTYlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnNtYWxsLTgge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDY2LjY2JTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3NtYWxsJykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ob21lLXNlY3Rpb24tdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaG9tZS1jb21wYW55LXJlcG9ydHMge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAmLnJvdyB7XG4gICAgICAgICAgICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjMxMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS4zMTI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjMxMjVyZW07XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaG9tZS1uZXdzIHtcbiAgICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAgICAgLnNtYWxsLTUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjkuMTYlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zbWFsbC03IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjYuNjYlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhvbWUtYXdhcmQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBoMSxcbiAgICAgICAgICAgIGgyLFxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ob21lLXJlc291cmNlcyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLmhvbWUtc2VjdGlvbi10b3Age1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbW9iaWxlLWNlbnRlcmVkJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbW9iaWxlLWNlbnRlcmVkJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuODc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdtb2JpbGUtY2VudGVyZWQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhvbWUtY29tcGFueS1yZXBvcnRzIHtcbiAgICAgICAgLnNtYWxsLTUge1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlJykge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguNSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc21hbGwtNyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTAlO1xuICAgICAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uYmxvZy10b3Age1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmctYm90dG9tOiA1LjMxMjVyZW07XG4gICAgcGFkZGluZy10b3A6IDcuMTc4NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ292ZXJsYXknKSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDE3LCA5MCwgMTIxLCAuOCksIHJnYmEoNywgNDYsIDY3LCAuOCkpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdzdmcnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3RvcCcpIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbWlkZGxlJykge1xuICAgICAgICAgICAgbGVmdDogNjRweDtcbiAgICAgICAgICAgIHRvcDogMTIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYm90dG9tJykge1xuICAgICAgICAgICAgbGVmdDogMjEzcHg7XG4gICAgICAgICAgICB0b3A6IDI4NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncm93Jykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZmVhdHVyZWQnKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjgxMjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZmVhdHVyZWQtdGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuNjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZlYXR1cmVkLXRpdGxlLWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdmZWF0dXJlZC1jYXRlZ29yeScpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZlYXR1cmVkLWV4Y2VycHQnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAxLjMxMjVyZW07XG4gICAgfVxuXG4gICAgLy8gRWRpdG9yJ3MgcGlja1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZWRpdG9ycy10aXRsZScpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxcmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2VkaXRvcnMtYXJ0aWNsZXMnKSB7XG4gICAgICAgIC5saXN0LWl0ZW0ge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1saW5rJykge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLjEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xKTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtbGluaycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5zZWFyY2gtYmFyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgICBAaW5jbHVkZSBlbGVtZW50KCdmb3JtJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMi41cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2VhcmNoLWZpZWxkJykge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEuODc1cmVtIDEuODc1cmVtIDA7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgbWFyZ2luOiAtMXB4IDA7XG4gICAgICAgIG1pbi13aWR0aDogMjIuNXJlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMXJlbSA0LjA2MjVyZW0gMS4yNXJlbSAxLjg3NXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1jb2xvcigkc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdzZWFyY2gtYnV0dG9uJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMS40Mzc1cmVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIuODc1cmVtO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAuNDM3NXJlbTtcbiAgICAgICAgdG9wOiAuNDM3NXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcztcbiAgICAgICAgd2lkdGg6IDIuODc1cmVtO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUoJ3NlYXJjaC1pY29uJyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjYXRlZ29yaWVzLXNjcm9sbGVyJykge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcmllcycpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBtYXJnaW46IDEuMTg3NXJlbSAwIDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcnknKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIuNjI1cmVtO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjYXRlZ29yeS1saW5rJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2FjdGl2ZScpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2ctZ3JheS1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWxlLWdyZXk7XG4gICAgbWFyZ2luOiAwIGF1dG8gMi41NjI1cmVtO1xuICAgIG1heC13aWR0aDogNzcuNXJlbTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMCAyLjY4NzVyZW07XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignZWRpdG9ycy1waWNrJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIC4xKTtcbiAgICAgICAgbWFyZ2luOiAyLjU2MjVyZW0gYXV0byAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdwb3B1bGFyJykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4xODc1cmVtO1xuICAgIH1cbn1cblxuLmJsb2ctc2VjdGlvbi10b3Age1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIHBhZGRpbmctYm90dG9tOiAuMjVyZW07XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnRzJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2V2ZW50cy1maWx0ZXJzJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdncmF5LWJveCcpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjY4NzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3BvcHVsYXInKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNjg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignYmx1ZS1ib3JkZXInKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2Vjb25kYXJ5O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdtZWRpdW0tbWFyZ2luJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdzbWFsbC1tYXJnaW4nKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMTg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLm5ld3Mtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gICAgcGFkZGluZy10b3A6IDQuMTI0cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS45Mzc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcC1uZXdzJykge1xuICAgICAgICAubGlzdC1pdGVtIHtcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NpZGUtZXZlbnRzLXNlY3Rpb24nKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNDM3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdib3R0b20tbmV3cycpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNTYyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdib3R0b20tbmV3cy1jb2x1bW4nKSB7XG4gICAgICAgIC5saXN0LWl0ZW0ge1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncG9wdWxhcicpIHtcbiAgICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlbGF0ZWQnKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjc1cmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogNC44NzVyZW07XG4gICAgfVxuXG59XG5cbi5sb2FkLW1vcmUtcG9zdHMge1xuICAgIGhlaWdodDogMjVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDI1MG1zLCBvcGFjaXR5IDI1MG1zLCB2aXNpYmlsaXR5IDI1MG1zO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMsIHZpc2JpbGl0eSAxNTBtcztcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogbG9hZGluZy1yb2F0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjY4NzVyZW07XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA0OCUgNDIlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgnbG9hZGluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2xvYWRpbmcnKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdoaWRkZW4nKSB7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBsb2FkaW5nLXJvYXRlIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4LjI1cmVtKSB7XG4gICAgLnNlYXJjaC1iYXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdmb3JtJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yLjMxMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvZy1ncmF5LWJveCB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdwb3B1bGFyJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMi4yNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAyLjI1cmVtIDEuMTg3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzIuNXJlbSkgYW5kIChtaW4td2lkdGg6IDYwcmVtKSB7XG4gICAgLnNlYXJjaC1iYXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzZWFyY2gtZmllbGQnKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcnknKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAgIC5ibG9nLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ZlYXR1cmVkJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuICAgIC5zZWFyY2gtYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnc2VhcmNoLWZpZWxkJykge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXdzLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdldmVudHMtY29sdW1uJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSBhbmQgKG1pbi13aWR0aDogNDhyZW0pIHtcbiAgICAuc2VhcmNoLWJhciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NhdGVnb3JpZXMnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjM3NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NhdGVnb3J5Jykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC44NzVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgLmJsb2ctdG9wIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjI1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JvdycpIHtcbiAgICAgICAgICAgID4gLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZmVhdHVyZWQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZmVhdHVyZWQtdGl0bGUnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdmZWF0dXJlZC1jYXRlZ29yeScpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdmZWF0dXJlZC1leGNlcnB0Jykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdlZGl0b3JzJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gMXJlbSAyLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdlZGl0b3JzLXRpdGxlJykge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAuMzc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZWRpdG9ycy1hcnRpY2xlcycpIHtcbiAgICAgICAgICAgIC5saXN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICAgICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyZWFkLW1vcmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLWJhciB7XG4gICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdmb3JtJykge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnc2VhcmNoLWZpZWxkJykge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjYXRlZ29yaWVzLXNjcm9sbGVyJykge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcmllcycpIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5ld3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdldmVudHMnKSB7XG4gICAgICAgICAgICAubGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOS4xNiU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2Ni42NiU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvZy1zZWN0aW9uLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpbmsnKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2ctZ3JheS1ib3gge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcigncG9wdWxhcicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLm5ld3Mtc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3BvcHVsYXInKSB7XG4gICAgICAgICAgICAubGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMDtcblxuICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncmVhZC1tb3JlJykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5cblxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5jYXRlZ29yeS10b3Age1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gICAgcGFkZGluZy10b3A6IDQuNTYyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignc2VhcmNoJykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41NjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3N2ZycpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAtNy43NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0b3AnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgbWFyZ2luOiAxLjA2MjVyZW0gMCAwO1xuXG4gICAgICAgICAgICAmLnNlYXJjaCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc21hbGwtY29sdW1uJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cbiAgICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2VkaXRvcnMtcGljaycpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmNhdGVnb3J5LWl0ZW0ge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtbGluaycpIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAzcHggI2ZmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAuMTI1cmVtIC45Mzc1cmVtIDAgcmdiYSgwLCAwLCAwLCAuMTUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtZGF0ZScpIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjM3NXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAuMTI1cmVtIC42MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yNSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgIGxlZnQ6IDEuMjVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjI1cmVtO1xuICAgICAgICB3aWR0aDogMi4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1kYXRlLW1vbnRoJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZnV0dXJhcHQtYm9sZC1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGhlaWdodDogLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogLjc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtZGF0ZS1kYXknKSB7XG4gICAgICAgIGNvbG9yOiAjZjAzZTM5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmdXR1cmFwdC1ib2xkLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogLjgxMjVyZW0gMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGF0ZScpIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V4Y2VycHQnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDEuMTg3NXJlbSAwIDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UtbGluaycpIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKC4yMTUsIC42MSwgLjM1NSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLm5ld3Mtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZXZlbnQtZmlsdGVycy1hbGwnKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAuNXJlbSAuNjI1cmVtO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYWNjb3JkaW9uJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FjY29yZGlvbi10aXRsZScpIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNlY29uZGFyeTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMTI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAueWVhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IC41cmVtIC42MjVyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuYXJyb3cge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxcmVtIEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMzEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyNTBtcyBsaW5lYXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgd2lkdGg6IDIuMzEyNXJlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMTA3JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhbGUtZ3JleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VycmVudC15ZWFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYWNjb3JkaW9uLWNvbnRlbnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWxlLWdyZXk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhY2NvcmRpb24tbW9udGhzJykge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FjY29yZGlvbi1tb250aCcpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhY2NvcmRpb24tbW9udGgtbGluaycpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAuNDM3NXJlbSAuNjI1cmVtIC42MjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhY2NvcmRpb24taXRlbScpIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZWNvbmRhcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgICAgICAgICAgICAgICAuYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFsZS1ncmV5O1xuXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxMDYnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAgIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2Vjb25kYXJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2ctc2VjdGlvbi10b3Age1xuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnRzJykge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjYyNXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtLjEyNXJlbTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgnY2FsZW5kYXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzguMjVyZW0pIHtcbiAgICAuYmxvZy1ncmF5LWJveCB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdlZGl0b3JzLXBpY2snKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEuODc1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS44NzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0cmVtKSB7XG4gICAgLmNhdGVnb3J5LWl0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZXhjZXJwdCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuICAgIC5jYXRlZ29yeS1pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgLmNhdGVnb3J5LXRvcCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjg3NXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuMzc1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzbWFsbC1jb2x1bW4nKSB7XG4gICAgICAgICAgICAubGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOS4xNiU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2Ni42NiU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdlZGl0b3JzLXBpY2snKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMS44NzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvZy1ncmF5LWJveCB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdlZGl0b3JzLXBpY2snKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXdzLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdldmVudHMtZmlsdGVycycpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLmNhdGVnb3J5LWl0ZW0ge1xuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuMzc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuMzc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZXhjZXJwdCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NtYWxsLWNvbHVtbicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNjI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnBvc3QtdG9wIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignaGFzLXZpZGVvJykge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3ZpZGVvLWJ0bicpIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogOHJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDU1MG1zIGVhc2Utb3V0LCBvcGFjaXR5IDU1MG1zLCB2aXNpYmlsaXR5IDU1MG1zO1xuXG4gICAgICAgICYuc2hvd2luZy12aWRlbyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYuODc1cmVtKTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ292ZXJsYXknKSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTcsIDkwLCAxMjEsIC4yNSksICRzZWNvbmRhcnkpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd2aWRlby13cmFwcGVyJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTUwbXMgZWFzZS1vdXQsIG9wYWNpdHkgNTUwbXMsIHZpc2liaWxpdHkgNTUwbXM7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDM7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNob3dpbmctdmlkZW8ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndmlkZW8tY2xvc2UnKSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC43NXJlbTtcbiAgICAgICAgdG9wOiAuNzVyZW07XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXM7XG4gICAgICAgIHdpZHRoOiAycmVtO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTByZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTUwbXMgZWFzZS1vdXQsIG9wYWNpdHkgNTUwbXMsIHZpc2liaWxpdHkgNTUwbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2V2ZW50Jykge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIxLjc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDE3cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3ByZXNzLXJlbGVhc2UnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA4LjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdyZXBvcnQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogOC4xMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogOC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdhYm91dCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNob3dpbmctdmlkZW8ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2Ljg3NXJlbSk7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtdG9wJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjYyNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcnknKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjM3NXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY2F0ZWdvcnktbGFiZWwnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdldmVudCcpIHtcbiAgICAgICAgICAgIG1hcmdpbjogLS4zMTI1cmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlLXdyYXBwZXInKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyODBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdldmVudC1kYXRlJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMzc1cmVtO1xuICAgICAgICBib3gtc2hhZG93OiAwIC4xMjVyZW0gLjYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBoZWlnaHQ6IDQuNjI1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMTg3NXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDUuMDYyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdldmVudC1kYXRlLW1vbnRoJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZnV0dXJhcHQtYm9sZC1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgaGVpZ2h0OiAxLjYyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZXZlbnQtZGF0ZS1kYXknKSB7XG4gICAgICAgIGNvbG9yOiAjZjAzZTM5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmdXR1cmFwdC1ib2xkLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhdXRob3InKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2F1dGhvci1pbWFnZScpIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggIzk3OTc5NztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYXV0aG9yLW5hbWUnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2RhdGUnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2hhcmUtYnV0dG9ucycpIHtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcGFkZGluZy10b3A6IC4zNzVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2V2ZW50Jykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuNjg3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NoYXJlLWJ1dHRvbicpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcywgYm9yZGVyLWNvbG9yIDIwMG1zLCBiYWNrZ3JvdW5kIDIwMG1zO1xuICAgICAgICB3aWR0aDogMi4yNXJlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NoYXJlLWljb24nKSB7XG4gICAgICAgICYsXG4gICAgICAgICYuZmEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucG9zdC1jb250ZW50LXNlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IC02Ljg3NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogbWFyZ2luLXRvcCA1NTBtcyBlYXNlLW91dDtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2V2ZW50Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTguNzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3dpZGUnKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIG1hcmdpbjogLTUuMjVyZW0gYXV0byAwO1xuICAgICAgICBtYXgtd2lkdGg6IDgwLjYyNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5zaG93aW5nLXZpZGVvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG5cbi5wb3N0LWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgcGFkZGluZzogMnJlbSA2LjI1cmVtIDMuMzc1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHAsXG4gICAgdWwsXG4gICAgb2wge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjhlbTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuOGVtO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDFlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDIuNDM3NXJlbTtcblxuICAgICAgICAgICAgJiArIHAge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEgKyBlbSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTA4LCAxNjAsIDIwMSwgLjEpO1xuICAgICAgICBtYXJnaW46IDAgLTYuMjVyZW0gMi44NzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gNi4yNXJlbSAzcmVtIDcuNXJlbTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgICoge1xuICAgICAgICAmOjpzZWxlY3Rpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdHJhdGlvbi1ib3gnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgcGFkZGluZzogMS4wNjI1cmVtIDAgMS4xODc1cmVtO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncmVnaXN0cmF0aW9uLWluZm8nKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDEuNXJlbSAwICAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuXG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnQnKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLS42MjVyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0LjQzNzVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC42MjVyZW07XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmICsgcCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyLjE4NzVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnJlZ2lzdHJhdGlvbi1pbmZvIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMi45Mzc1cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxLjVyZW0gMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDIuMjVyZW0gMi44NzVyZW0gLTMuNjg3NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMi4yNXJlbSAzcmVtIDQuOTM3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd3aWRlJykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3ByZXNzLXJlbGVhc2UnKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuXG4gICAgICAgICAgICAgICAgJiArIHAge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtMy43NXJlbSAyLjg3NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMy43NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignd2hpdGUtbGlzdHMnKSB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmxvY2txdW90ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDgsIDE2MCwgMjAxLCAuMSk7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbjogMCAtMy43NXJlbSAxLjgxMjVyZW07XG4gICAgcGFkZGluZzogNy4xODI1cmVtIDMuNzVyZW0gNC4yNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGNvbG9yOiAjYjRiNjNjO1xuICAgICAgICBjb250ZW50OiAn4oCeJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiA1cmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICB3aWR0aDogMi40Mzc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Zvb3RlcicpIHtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tdG9wOiAyLjYyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhdXRob3InKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Bvc2l0aW9uJykge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogLjM3NXJlbSAwIDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW5uZXInKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDM4cmVtO1xuICAgIH1cbn1cblxuLy8gUG9zdCBzaWRlYmFyXG4ucG9zdC1zaWRlYmFyLWNvbHVtbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uLXdyYXBwZXInKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2Vjb25kYXJ5O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgJi5oaWRlLW1vcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAmLnNob3ctbW9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5oaWRlLW1vcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucG9zdC1zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1hcmdpbi1sZWZ0OiAtLjYyNXJlbTtcbiAgICBwYWRkaW5nOiAycmVtIDIuNXJlbSAwIC42MjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdwcmVzcy1yZWxlYXNlJykge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V2ZW50LWRldGFpbHMnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS43NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdldmVudC1kYXRlJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V2ZW50LXBsYWNlJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V2ZW50LXRpbWUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncmVnaXN0cmF0aW9uJykge1xuICAgICAgICBtYXJnaW46IDAgMCAyLjc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlZ2lzdHJhdGlvbi10ZXh0Jykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyZWxhdGVkLXJlcG9ydC13cmFwcGVyJykge1xuICAgICAgICBtYXJnaW46IDAgMCAyLjY4NzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncmVsYXRlZC1yZXBvcnQtdG9wLXRpdGxlLXByZXNzLXJlbGVhc2UnKSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNTYyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0uMTI1cmVtO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgncmVwb3J0LWRvYycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbWVkaWEtcmVzb3VyY2VzJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3OSwgMTgyLCA2MSwgLjEpO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMi42MjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbWVkaWEtcmVzb3VyY2VzLWRlc2MnKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuODc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21lZGlhLXJlc291cmNlcy1zdWJ0aXRsZScpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiNGI2M2M7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW46IDAgMCAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMCAuMzc1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21lZGlhLXJlc291cmNlcy1pbm5lcicpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdrZXktcXVvdGUtd3JhcHBlcicpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMi44NzVyZW07XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS1xdW90ZScpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjE4NzVyZW07XG4gICAgfVxufVxuXG4vLyBSZWxhdGVkIHJlcG9ydFxuXG4ucmVsYXRlZC1yZXBvcnQge1xuICAgICRyb290OiAmO1xuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWxpbmsnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjE4NzVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZXhjZXJwdCcpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyICYge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1saW5rJykge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoLjIxNSwgLjYxLCAuMzU1LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU3BlYWtlciBzZWN0aW9uXG5cbi5zcGVha2VyLXNlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3NwZWFrZXItYmcuanBnJyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZy1ib3R0b206IDcuODc1cmVtO1xuICAgIHBhZGRpbmctdG9wOiA2LjM3NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdvdmVybGF5Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEzMCwgMTMxLCAuNSk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JvdycpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBtYXJnaW46IDAgMCAxLjM3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd3aWRnZXQnKSB7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU2hhcmVsaW5lcyBzZWN0aW9uXG5cbi5zaGFyZWxpbmVzLXNlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgcGFkZGluZy1ib3R0b206IDQuODc1cmVtO1xuICAgIHBhZGRpbmctdG9wOiA0LjI1cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2hhcmVsaW5lJykge1xuICAgICAgICBwYWRkaW5nOiAxLjEyNXJlbSAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NoYXJlbGluZS1jb250ZW50Jykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjOTc5Nzk3O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcywgYm9yZGVyLWNvbG9yIDIwMG1zLCBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zO1xuICAgICAgICB3aWR0aDogMi4yNXJlbTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgJi5mYWNlYm9vay1jb2xvciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiNTk5ODtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICMzYjU5OTg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYudHdpdHRlci1jb2xvciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU1YWNlZTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICM1NWFjZWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGlua2VkaW4tY29sb3Ige1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDdiYjU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3YmI1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaWNvbicpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMTI1cmVtO1xuICAgIH1cbn1cblxuLy8gQXV0aG9yIHNlY3Rpb25cblxuLmF1dGhvci1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIC4xKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNS42MjVyZW07XG4gICAgcGFkZGluZy10b3A6IDQuMjVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0b3AnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdwaG90bycpIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJGdyZXk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogNy41cmVtO1xuICAgICAgICB3aWR0aDogNy41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdjb21wYW55Jykge1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiA2LjQzNzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50LWNvbHVtbicpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS45Mzc1cmVtO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNy41cmVtKTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZnVsbCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2NvbXBhbnknKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNi40Mzc1cmVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtY29sdW1uLXRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogLjVyZW0gMCAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hbWUnKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Bvc2l0aW9uJykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi8vIFNoYXJlIHRvb2x0aXBcblxuLnNoYXJlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMS41NjI1cmVtO1xuICAgIGJveC1zaGFkb3c6IDAgLjMxMjVyZW0gLjkzNzVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yNSk7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMsIHZpc2liaWxpdHkgMTUwbXM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiA4cHggMTBweCAwO1xuICAgICAgICBib3R0b206IC04cHg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3Zpc2libGUnKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4My4yNXJlbSkge1xuICAgIC5ibG9ja3F1b3RlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi4xMjVyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NXJlbSkge1xuICAgIC5wb3N0LWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbmV4dC10by1zaWRlYmFyJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCduby1zaWRlYmFyJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LXNpZGViYXIge1xuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdiaWcnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0cmVtKSB7XG4gICAgLnBvc3QtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNi44NzVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDYuODc1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCduZXh0LXRvLXNpZGViYXInKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ25vLXNpZGViYXInKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2V2ZW50Jykge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMSU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMSU7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBvc3Qtc2lkZWJhci1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnQnKSB7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgICAgICAucG9zdC1zaWRlYmFyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIuNjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICAucG9zdC10b3Age1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2V2ZW50Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LWNvbnRlbnQtc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdldmVudCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBvc3QtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi4yNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIuODc1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMi44NzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIuODc1cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTIuODc1cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMy44NzVyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignd2hpdGUtbGlzdHMnKSB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAucG9zdC1zaWRlYmFyLWNvbHVtbiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi44NzVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuODc1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbi13cmFwcGVyJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZXZlbnQnKSB7XG4gICAgICAgICAgICAucG9zdC1zaWRlYmFyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LXNpZGViYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogMnJlbSAwIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbWVkaWEtcmVzb3VyY2VzJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yLjg3NXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTIuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjg3NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuODc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIuODc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yLjg3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjg3NXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07XG4gICAgfVxuXG4gICAgLnJlbGF0ZWQtcmVwb3J0IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1saW5rJykge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtd3JhcHBlcicpIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5wb3N0LXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd2aWRlby1idG4nKSB7XG4gICAgICAgICAgICB0b3A6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucG9zdC1jb250ZW50LXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5wb3N0LWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjMxMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjMxMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuMzEyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMzEyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDEuMzc1cmVtO1xuXG4gICAgICAgICAgICAgICAgJiArIHAge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignd2hpdGUtbGlzdHMnKSB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICAgIH1cblxuICAgIC5zaGFyZWxpbmVzLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICB9XG5cbiAgICAuYXV0aG9yLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgLnBvc3Qtc2lkZWJhci1jb2x1bW4ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4zMTI1cmVtO1xuXG4gICAgfVxuXG4gICAgLnBvc3Qtc2lkZWJhciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21lZGlhLXJlc291cmNlcycpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1NXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS4zMTI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS4zMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrcXVvdGUge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuMzEyNTVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMuMjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4zMTI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjMxMjVyZW07XG4gICAgfVxufVxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLnBvc3QtdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndmlkZW8td3JhcHBlcicpIHtcbiAgICAgICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA2cmVtKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDNyZW0gMCAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndmlkZW8tY2xvc2UnKSB7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtdG9wJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYXV0aG9yJykge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZGF0ZScpIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2NlbnRlcicpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzaGFyZS1idXR0b25zJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzaGFyZS1idXR0b24nKSB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2V2ZW50LWRhdGUnKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS13cmFwcGVyJykge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucG9zdC1jb250ZW50IHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyZWdpc3RyYXRpb24tYm94Jykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXdzbGV0dGVyLXNlY3Rpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgLm5ld3NsZXR0ZXItc2VjdGlvbi13aWRnZXQge1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuMTI1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZm9vdGVyLW5ld3NsZXR0ZXItc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hhcmVsaW5lcy1zZWN0aW9uLFxuICAgIC5hdXRob3Itc2VjdGlvbiB7XG4gICAgICAgIC5ibG9nLXNlY3Rpb24tdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hhcmVsaW5lcy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzaGFyZWxpbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC5yb3cge1xuICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjEyNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLmF1dGhvci1zZWN0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Bob3RvJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDNyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdjb21wYW55Jykge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQtY29sdW1uJykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudC1jb2x1bW4tdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYW1lJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Bvc2l0aW9uJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LXNpZGViYXItY29sdW1uIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gICAgfVxuXG4gICAgLnBvc3Qtc2lkZWJhciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21lZGlhLXJlc291cmNlcycpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAucmVsYXRlZC1yZXBvcnQge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1saW5rJykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50LXdyYXBwZXInKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVha2VyLXNlY3Rpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnBvc3QtdG9wIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsb2dpbi1pbmZvJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAxcmVtIDEuNjI1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdsb2dnZWQtaW4nKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2hhcy1saW5rJykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xvZ2luLWluZm8tYmxvY2stbGluaycpIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMsIGJhY2tncm91bmQgMjAwbXM7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsb2dpbi1pbmZvLXRpdGxlJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM3NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjc1cmVtO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNTYyNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUoJ2Rvd25sb2FkLWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbG9nZ2VkLWluJykge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbG9naW4taW5mby1kZXNjJykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbG9naW4taW5mby1saW5rJykge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG59XG5cbi5wb3N0LWNvbnRlbnQge1xuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydCcpIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0zLjVyZW0gMi44NzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDMuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBvc3Qtc2lkZWJhciB7XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcigncmVwb3J0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjdmN2ViO1xuICAgICAgICBtYXJnaW46IC00LjU2MjVyZW0gMCAwIC0xLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMi42MjVyZW07XG4gICAgfVxufVxuXG4uc2lkZWJhci1yZXNvdXJjZSB7XG4gICAgJHJvb3Q6ICY7XG4gICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndHlwZScpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWxpbmsnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlJykge1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlLWxpbmsnKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdidXR0b24nKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4xMjVyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJjpob3ZlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UnKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllciguMjE1LCAuNjEsIC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ua2V5LWZpbmRpbmdzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIC4xKTtcbiAgICBtYXJnaW46IDAgLTMuNXJlbTtcbiAgICBwYWRkaW5nOiAyLjc1cmVtIDMuNXJlbSAzcmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjU2MjVyZW07XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBtYXJnaW46IDAgMCAzcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjEyNXJlbTtcbiAgICB9XG5cbiAgICAud3AtY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MC42MjVyZW0pIHtcbiAgICAua2V5LWZpbmRpbmdzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0ycmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICAucG9zdC10b3Age1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsb2dpbi1pbmZvJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmtleS1maW5kaW5ncyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMi44NzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTIuODc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuODc1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyLjg3NXJlbTtcbiAgICB9XG5cbiAgICAucG9zdC1zaWRlYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMi44NzVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yLjg3NXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMi44NzVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG4gICAgLnBvc3QtdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdyZXBvcnQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAua2V5LWZpbmRpbmdzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjMxMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjMxMjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMzEyNXJlbTtcbiAgICB9XG5cbiAgICAucG9zdC1zaWRlYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4zMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS4zMTI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjMxMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjMxMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbC12ZXJ0aWNhbCkge1xuICAgIC5rZXktZmluZGluZ3Mge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAucG9zdC1zaWRlYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLm5ld3Mtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydHMnKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydHMnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcC1pbm5lcicpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlcG9ydC1jb2x1bW4nKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG5cbiAgICAgICAgLnJlcG9ydC10aWxlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlYXJjaC1iYXIge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JvdycpIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydHMnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbXBhbnknKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWxlLWdyZXk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdyZXk7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgaGVpZ2h0OiAzLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS44MTI1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuMTI1cmVtIDIuNXJlbSAxLjEyNXJlbSAxLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbXBhbnktaW5mbycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbXBhbnktdG9vbHRpcCcpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNzVyZW07XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY29tcGFueS1sb2dpbicpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNjI1cmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Ryb3Bkb3duJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAwIC4zMTI1cmVtIDEuNTYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMy44MTI1cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zLCB2aXNpYmlsaXR5IDI1MG1zO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgICYudmlzaWJsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Ryb3Bkb3duLXNlYXJjaGVzJykge1xuICAgICAgICBtYXgtd2lkdGg6IDE2LjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Ryb3Bkb3duLXNlYXJjaGVzLWxpc3QnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZHJvcGRvd24tc2VhcmNoZXMtaXRlbScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Ryb3Bkb3duLXNlYXJjaGVzLWxpbmsnKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Ryb3Bkb3duLXBvcHVsYXInKSB7XG4gICAgICAgIG1heC13aWR0aDogNDguNzVyZW07XG5cbiAgICAgICAgPiAucm93IHtcbiAgICAgICAgICAgICYuc2VhcmNoLWJhci1kcm9wZG93bi1wb3B1bGFyLXJvdyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0uNjI1cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLS42MjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkcm9wZG93bi1vdmVybGF5Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4yNSk7XG4gICAgICAgIGhlaWdodDogMjAwdmg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzLjgxMjVyZW07XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMsIHZpc2liaWxpdHkgMjUwbXM7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgJi52aXNpYmxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3JlcG9ydHMnKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICAmLnN0aWNreS1uYXZiYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3N0aWNreScpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAuc2VhcmNoLWJhciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Ryb3Bkb3duJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXdzLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyZXBvcnQtY29sdW1uJykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG5cbi5wYWdlLWNvbnRlbnQtc2VjdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucG9zdC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtb2RpZmllcigncGFnZScpIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDUuNXJlbTtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuXG4gICAgICAgICAgICAgICAgJiArIHAge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYWdlLXRvcCB7XG4gICAgcGFkZGluZzogOC43NXJlbSAwIDMuMzc1cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncGFyZW50LWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW46IDAgMCAuMzc1cmVtO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC5wYWdlLXRvcCB7XG4gICAgICAgIHBhZGRpbmc6IDMuNzVyZW0gMCAxLjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucG9zdC1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3BhZ2UnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMnJlbTtcblxuICAgICAgICAgICAgcCxcbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uY29udGFjdC10b3Age1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XG4gICAgaGVpZ2h0OiAyMXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbWFwJykge1xuICAgICAgICBoZWlnaHQ6IDIyLjVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmluZm8td2luZG93LWNvbnRlbnQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBmb250LWZhbWlseTogJ2Z1dHVyYS1wdCcsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwIC44MTI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2FkZHJlc3MnKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjY4NzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGlyZWN0aW9ucycpIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnZnV0dXJhLXB0Jywgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2RpcmVjdGlvbnMtaWNvbicpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IC43NWVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbWFya2VyJykge1xuICAgICAgICBib3R0b206IC0zLjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtNHJlbTtcbiAgICB9XG59XG5cbi5jb250YWN0LWNvbnRlbnQtc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nLWJvdHRvbTogNi41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JpZ2h0LWNvbHVtbicpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEuMTI1cmVtO1xuICAgIH1cbn1cblxuLnBvc3QtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2NvbnRhY3QnKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTVlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMS44ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250YWN0LXBlcnNvbiB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbmFtZScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDAgLjYyNXJlbSAwIDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZW1haWwnKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgfVxuXG4gICAgcCB7XG5cbiAgICAgICAgJi5jb250YWN0LXBlcnNvbi1wb3NpdGlvbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53cGNmNyB7XG4gICAgLmNvbHVtbnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNzVyZW07XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICAmW3R5cGU9J3RleHQnXSxcbiAgICAgICAgJlt0eXBlPSdlbWFpbCddLFxuICAgICAgICAmW3R5cGU9J3RlbCddIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjc1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IC44NzVyZW0gMS4zNzVyZW0gLjYyNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1jb2xvcigkZGFyay1ncmV5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbdHlwZT0nc3VibWl0J10ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC43NXJlbTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGhlaWdodDogNy41cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDEuMTg3NXJlbSAxLjM3NXJlbSAxLjVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG5cbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXItY29sb3IoJGRhcmstZ3JleSk7XG4gICAgfVxuXG4gICAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgICBjb2xvcjogJGVycm9yO1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDEuMzc1cmVtO1xuICAgIH1cblxuICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogLjc1cmVtIDAgMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAxLjM3NXJlbTtcblxuICAgICAgICAmLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzLFxuICAgICAgICAmLndwY2Y3LW1haWwtc2VudC1uZyB7XG4gICAgICAgICAgICBjb2xvcjogJGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi53cGNmNy1zdWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAuY29udGFjdC1jb250ZW50LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgICB9XG5cbiAgICAucG9zdC1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2NvbnRhY3QnKSB7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnNlYXJjaC1jYXRlZ29yaWVzLWJhciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JleTtcbn1cblxuLnNlYXJjaC1yZXN1bHRzLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAuNXJlbTtcblxufVxuXG4uc2VhcmNoLXJlc3VsdHMtYmxvY2sge1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgcGFkZGluZy10b3A6IDEuNzVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0b3AnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGluaycpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25vdGhpbmctZm91bmQnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudC1pbm5lcicpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Nob3ctbW9yZS13cmFwcGVyJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Nob3ctbW9yZScpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0byAxLjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxMDcnO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtIEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC4yNXJlbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXM7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgJi5sZXNzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICYubGVzcyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm1vcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAuc2VhcmNoLXJlc3VsdHMtYmxvY2sge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdzaG93LW1vcmUtd3JhcHBlcicpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgICAgID4gLnJvdyB7XG4gICAgICAgICAgICAgICAgPiAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKG4rNSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zaG93aW5nLW1vcmUge1xuICAgICAgICAgICAgICAgID4gLnJvdyB7XG4gICAgICAgICAgICAgICAgICAgID4gLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQobis1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLnNlYXJjaC1yZXN1bHRzLWJsb2NrIHtcbiAgICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAgICAgLnNtYWxsLTYge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjkuMTYlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgICAgICAgICAmLnNtYWxsLTYge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNC4xOCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2Ni42NiU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5hYm91dC10b3Age1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2Fib3V0LXRvcC1iYWNrZ3JvdW5kLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWluLWhlaWdodDogMzIuMzc1cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDZyZW07XG4gICAgcGFkZGluZy10b3A6IDkuMTI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICBtYXJnaW46IDAgMCAxLjgxMjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3BsYXktYnV0dG9uJykge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gICAgICBcbiAgICBAaW5jbHVkZSBlbGVtZW50KCdwbGF5LWRlc2MnKSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDJyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5hYm91dC1uYXYge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGlzdCcpIHtcbiAgICAgICAgaGVpZ2h0OiAzLjgxMjVyZW07XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0LWVsZW1lbnQnKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAuNDM3NXJlbTtcblxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGlzdC1lbGVtZW50LWxpbmsnKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRyZW07XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMS44NzVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdhY3RpdmUnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZG93bmxvYWQnKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjA2MjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuMTI1cmVtIDIuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXM7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUoJ2Rvd25sb2FkLWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWhvdmVyO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbW9iaWxlJykge1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAuMTI1cmVtIC4zMTI1cmVtIDAgcmdiYSgwLCAwLCAwLCAuMik7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMS4xMjVyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0b3A6IDNyZW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignc3RpY2t5Jykge1xuICAgICAgICBib3gtc2hhZG93OiAwIC4xMjVyZW0gLjMxMjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG59XG5cbi5hYm91dC1taXNzaW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncm93LWlubmVyJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnYmxvY2stZ3JheScpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTA4LCAxNjAsIDIwMSwgLjEpO1xuICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAyNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBtYXJnaW4tdG9wOiA0LjEyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNi4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1jb2x1bW4nKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDUwdnc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGV4dC1ibG9jaycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogNS42MjVyZW0gMDtcbiAgICAgICAgLy9wYWRkaW5nOiAuNXJlbSAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyZXNlYXJjaCcpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIG1hcmdpbi10b3A6IDUuNjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Jlc2VhcmNoLXRpdGxlJykge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAyNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Jlc2VhcmNoLWRlc2MnKSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDI1cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC44MTI1cmVtIDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGF0ZXN0Jykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xhdGVzdC10aXRsZScpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsYXRlc3QtYWxsJykge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbGF0ZXN0LXJlcG9ydHMnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDcuNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4yNXJlbTtcblxuICAgICAgICAubGlzdC1pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC4zMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxhcmdlLTItNXRoIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cblxuICAgICAgICAubGFyZ2UtMy01dGgge1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFib3V0LXF1b3RlcyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9ob21lcGFnZS10b3AtYmFja2dyb3VuZC5zdmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAzNC41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA3cmVtO1xuICAgIHBhZGRpbmctdG9wOiA3cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbWFya3MnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2xpZGVyJykge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3F1b3RlJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNjI1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbmFtZScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE4NzVyZW07XG4gICAgICAgIG1hcmdpbjogMi44MTI1cmVtIDAgMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hdicpIHtcbiAgICAgICAgbWFyZ2luOiAyLjgxMjVyZW0gMCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgbWFyZ2luOiAuMzc1cmVtIC43NXJlbTtcbiAgICAgICAgb3BhY2l0eTogLjM1O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXM7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYWJvdXQtYXdhcmRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTYwLCAyMDEsIC4xKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICBwYWRkaW5nOiAyLjI1cmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMzEyNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMy4zMTI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltZycpIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAuMTg3NXJlbSAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAgMCAuMTI1cmVtIDEuNTYyNXJlbSAwIHJnYmEoMCwgMCwgMCwgLjE1KTtcbiAgICB9XG59XG5cbi5ob21lLWF3YXJkIHtcbiAgICBAaW5jbHVkZSBtb2RpZmllcignYWJvdXQnKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTtcbiAgICB9XG59XG5cblxuLmFib3V0LXRlYW0ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDEzJTtcbiAgICBwYWRkaW5nLXRvcDogMTAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDA4MjgzLCAjN2ZjMGMxKTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IC45NTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgID4gLnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZScpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbicpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXJlbTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDYyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgcGFkZGluZzogLjg3NXJlbSAyLjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjUwbXMsIGJhY2tncm91bmQtY29sb3IgMjUwbXM7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndmFjYW5jaWVzLW5vdGljZScpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IC45Mzc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLjlyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2N1cnJlbnQnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDI1cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY3VycmVudC10aXRsZScpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjdXJyZW50LWFsbCcpIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZGRkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY3VycmVudC12YWNhbmNpZXMnKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC42MjVyZW07XG4gICAgfVxuXG4gICAgLmxpc3QtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTI1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFib3V0LWhpc3Rvcnkge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmctYm90dG9tOiA1LjYyNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogNC42MjVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjYyNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA0My43NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNjI1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaXRlbScpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDguMzMzMzMlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3llYXItY29udCcpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMy44MTI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignZmlyc3QnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjMxMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd5ZWFyJykge1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgIGZvbnQtc2l6ZTogOTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgICAmICsgLmhlYWRpbmctNCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncmVwb3J0LXRpdGxlJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMS43NXJlbSAwIDEuNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4yNXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5lJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0LWJsb2NrcycpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS44NzVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDUuMjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2ZpcnN0Jykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMy43NXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQtYmxvY2snKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW0gMS43NXJlbSAxLjg3cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0aXRsZScpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA5Ljc1cmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0uNXJlbTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAuODEyNXJlbTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaW1wYWN0MScpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjYXJib24tdHJhY2tlci1ncmVlbjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2ltcGFjdDInKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFyay1ncmV5O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0LWJsb2NrLXRpdGxlJykge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjllbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQtYmxvY2stZGVzYycpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgbWFyZ2luOiAuNjg3NXJlbSAwIDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGV4dC1ibG9ja3Mtd3JhcHBlcicpIHtcbiAgICAgICAgLy9taW4taGVpZ2h0OiAyNC43NXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2ltYWdlLWNvbnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTEzMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEzMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UnKSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbn1cblxuLmFib3V0LWZ1bmRlcnMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogMXB4ICNkZGQgc29saWQ7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjYyNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMy42MjVyZW07XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignZ3JheScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDgsIDE2MCwgMjAxLCAuMSk7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIHBhZGRpbmc6IDQuNjI1cmVtIDAgNS42MjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuMzEyNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAxLjYyNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAzNy41cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IC42MjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC42MjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5rJykge1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcztcblxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcywgdmlzaWJpbGl0eSAyMDBtcztcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5sZXNzIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm1vcmUge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMTA3JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubGVzcyB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYxMDYnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICYubGVzcyB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5tb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Z1bmRlcnMnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdmdW5kZXJzLWlubmVyJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZnVuZGVyJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjM3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdmdW5kZXItdGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdmdW5kZXItZGVzYycpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIG1hcmdpbjogLjI1cmVtIDAgMDtcbiAgICB9XG59XG5cbi8vIFJXRFxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3My43NXJlbSkgeyAvLyAxMTgwcHhcblxuICAgIC5hYm91dC1uYXYge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0LWVsZW1lbnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsaXN0LWVsZW1lbnQtbGluaycpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFib3V0LXRlYW0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuXG4gICAgLmFib3V0LWhpc3Rvcnkge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZS1jb250Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2xpbmUnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC04LjMzMzMzJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcbiAgICAuYWJvdXQtbmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAuYWJvdXQtdG9wIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMuMjVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiA2cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYWJvdXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWJvdXQtbmF2IHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignbW9iaWxlJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFib3V0LW1pc3Npb24ge1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Jvdy1pbm5lcicpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjc1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2UnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDQ4JTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Jsb2NrLWdyYXknKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGV4dC1ibG9jaycpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwIC41cmVtO1xuXG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Jlc2VhcmNoJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Jlc2VhcmNoLWRlc2MnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdsYXRlc3QtcmVwb3J0cycpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcblxuICAgICAgICAgICAgLmxhcmdlLTItNXRoIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjkuMTYlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGFyZ2UtMy01dGgge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0LjE4JTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNjYuNjYlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFib3V0LXF1b3RlcyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjg3NXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuODc1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3F1b3RlJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbmFtZScpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMi43NXJlbSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCduYXYnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDIuMzc1cmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hYm91dC10ZWFtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuXG5cbiAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdidXR0b24nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hYm91dC1oaXN0b3J5IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAzLjYyNXJlbTtcblxuICAgICAgICA+IGgxIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3llYXInKSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd5ZWFyLWNvbnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQtYmxvY2tzJykge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMi43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RleHQtYmxvY2tzLXdyYXBwZXInKSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbGluZScpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0ZXh0LWJsb2NrJykge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3RpdGxlJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaW1wYWN0MScpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaW1wYWN0MicpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgndGV4dC1ibG9jay1kZXNjJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JlcG9ydHMnKSB7XG4gICAgICAgICAgICAubGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOS4xNiU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQuMTglO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2Ni42NiU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWJvdXQtZnVuZGVycyB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Z1bmRlcicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLmFib3V0LXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWJvdXQtdGVhbSB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2N1cnJlbnQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2N1cnJlbnQtdGl0bGUnKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2N1cnJlbnQtYWxsJykge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vbWl4aW5zJztcblxuLnRlYW0tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDQuMTI1cmVtO1xuICAgIH1cbn1cblxuLnRlYW0tZ3JpZCB7XG4gICAgLnRlYW0tZ3JpZC1pbm5lciB7XG4gICAgICAgIC8vZGlzcGxheTogZmxleDtcbiAgICAgICAgLy9mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAuNnM7XG5cbiAgICAgICAgJi5hcnJhbmdlZCB7XG4gICAgICAgICAgICAudGVhbS1ncmlkLWVsZW1lbnQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50ZWFtLWZpbHRlcnMtYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cblxuLnRlYW0tZmlsdGVycyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjEyNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjEyNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogLjkzNzVyZW07XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd2YWNhbmNpZXMtYnRuJykge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3ZhY2FuY2llcy1idG4nKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRlYW0tZmlsdGVycy1saXN0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaXRlbScpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0tbGluaycpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMS4xMjVyZW07XG4gICAgICAgIGNvbG9yOiAjMDA4MjgzO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gMS4yNXJlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zIGVhc2Utb3V0LCBjb2xvciAyNTBtcyBlYXNlLW91dDtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignYWN0aXZlJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA4MjgzO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0nKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4udGVhbS1maWx0ZXJzLWNoaWxkLWxpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDAgMCAuNXJlbTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaXRlbScpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpdGVtLWxpbmsnKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEuMTI1cmVtO1xuICAgICAgICBjb2xvcjogIzAwODI4MztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAuMzc1cmVtIDEuMjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlLW91dCwgY29sb3IgMjUwbXMgZWFzZS1vdXQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2FjdGl2ZScpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDgyODM7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODI4MztcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2FjdGl2ZScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4ucGFnZS1jb250ZW50LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0ZWFtJykge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdiYWNrLXRvLWFib3V0Jykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2JhY2stdG8tYWJvdXQtbGluaycpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTA0JztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjc1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucG9zdC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtb2RpZmllcigndGVhbScpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIHBhZGRpbmc6IDEuODc1cmVtIDAgNC4xMjVyZW07XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luOiAxLjg3NXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmdyb3VwLXdyYXAge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG5cbiAgICAmLmhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTI1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4zNzVyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuMjVlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAucm93LWlubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbn1cblxuLnRlYW0tZ3JpZC1lbGVtZW50IHtcbiAgICAkcm9vdDogJjtcbiAgICBtYXJnaW46IDAgMCAzLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2Utb3V0O1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncGhvdG8td3JhcHBlcicpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC43NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS4xODc1cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1pbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdtZW1iZXItbmFtZScpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ21lbWJlci1uYW1lLWxpbmsnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnbWVtYmVyLXBvc2l0aW9uJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjkzNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdsaW5rJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpob3ZlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbWVtYmVyLW5hbWUtbGluaycpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Bob3RvLXdyYXBwZXInKSB7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllciguMjE1LCAuNjEsIC4zNTUsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYWJvdXQtdGVhbSB7XG4gICAgQGluY2x1ZGUgZWxlbWVudCgnY3VycmVudCcpIHtcblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcigndGVhbScpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMTI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IC45Mzc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi50ZWFtLXNpZGViYXIge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2J1dHRvbicpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMS41cmVtO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMTA3JztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbSBGb250QXdlc29tZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMjVyZW07XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICYuaGlkZS1qb2JzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICYuaGlkZS1qb2JzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuc2hvdy1qb2JzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdyb3cnKSB7XG4gICAgICAgICYucm93IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncm93LWlubmVyJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnd3JhcHBlcicpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi50ZWFtLWJvYXJkLW1lbWJlciB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCduYW1lJykge1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2pvYi10aXRsZScpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnLCAnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGV0YWlscycpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ29yZ2FuaXNhdGlvbicpIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG59XG5cblxuLnRlYW0tdmFjYW5jaWVzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjEyNXJlbTtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Jvdy1pbm5lcicpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbn1cblxuLmxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3RlYW0nKSB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAuNjI1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0ZWFtJykge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3RlYW0nKSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxMjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGVhbS1qb2luIHtcbiAgICBiYWNrZ3JvdW5kOiAkcGFsZS1ncmV5O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgIG1hcmdpbjogMCAtMS4yNXJlbTtcbiAgICBwYWRkaW5nOiAyLjg3NXJlbSAxLjI1cmVtIDMuNzVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC43NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAxLjg3NXJlbTtcbiAgICB9XG59XG5cbi8vIFRlYW0gbWVtYmVyIG1vZGFsXG4udGVhbS1tZW1iZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL21lbWJlci1iZy5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDU1MG1zIGVhc2Utb3V0LCBvcGFjaXR5IDU1MG1zLCB2aXNpYmlsaXR5IDU1MG1zO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA2O1xuXG4gICAgJi5vdmVyZmxvdy1zY3JvbGwge1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncm93Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDhyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjbG9zZS1idXR0b24nKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjAxODc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNyZW07XG4gICAgICAgIHRvcDogNC41cmVtO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Nsb3NlLWJ1dHRvbi14Jykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMS43NWVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS4yNWVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgd2lkdGg6IDEuNzVlbTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3MjBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgncGhvdG8td3JhcHBlcicpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdwaG90bycpIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAuMzEyNXJlbSAxLjU2MjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4yNSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkYmx1ZTtcbiAgICAgICAgbWFyZ2luOiAxLjg3NXJlbSAwIDEuNXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMS41NjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ25hbWUnKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW46IDAgMCAuMTg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdwb3NpdGlvbicpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdjb250ZW50Jykge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMS41ZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdkaXNwbGF5Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtb2RpZmllcignc2hvdycpIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1LjVyZW0pIHtcbiAgICAudGVhbS1tZW1iZXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjbG9zZS1idXR0b24nKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRyZW0pIHtcbiAgICAudGVhbS1zaWRlYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncm93LWlubmVyJykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5saXN0LWl0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcigndGVhbScpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hYm91dC10ZWFtIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY3VycmVudC10aXRsZScpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0ZWFtJykge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50ZWFtLWpvaW4ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAucm93IHtcbiAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRlYW0tZ3JpZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLnRlYW0tZ3JpZC1lbGVtZW50IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMi44NzVyZW07XG4gICAgfVxuXG4gICAgLnBvc3QtY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0ZWFtJykge1xuICAgICAgICAgICAgcGFkZGluZzogMS4xMjVyZW0gMCAxLjc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRlYW0tbWVtYmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncm93Jykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDZyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjbG9zZS1idXR0b24nKSB7XG4gICAgICAgICAgICB0b3A6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMi4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnY29udGVudCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMi4yNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAudGVhbS1qb2luIHtcbiAgICAgICAgbWFyZ2luOiAwIC0xLjMxMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAxLjMxMjVyZW0gMnJlbTtcblxuICAgIH1cblxuICAgIC50ZWFtLW1lbWJlciB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3JvdycpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjbG9zZS1idXR0b24nKSB7XG4gICAgICAgICAgICB0b3A6IDEuNXJlbTtcblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMS41cmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgdWwsXG4gICAgICAgICAgICBvbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLXZlcnRpY2FsKSB7XG4gICAgLnRlYW0tZ3JpZC1lbGVtZW50IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMi4xMjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnbWVtYmVyLW5hbWUnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFib3V0LXRlYW0ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdjdXJyZW50Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3RlYW0nKSB7XG4gICAgICAgICAgICAgICAgPiBoMSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxpc3QtaXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0ZWFtJykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDAgMS41cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgLy9ib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGVhbS1qb2luIHtcbiAgICAgICAgbWFyZ2luOiAwIC0xcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgfVxuXG4gICAgLnRlYW0tbWVtYmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgncGhvdG8td3JhcHBlcicpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0b3AnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2NvbnRlbnQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4ucmVmcy1jb250ZW50LXNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiA0LjYyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yZWZzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBtYXJnaW46IDAgMCAyLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMi41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNi4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdrZXktdGVybXMnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDQuMTI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS10ZXJtcy10b3AnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIuMTI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS10ZXJtcy10aXRsZScpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgna2V5LXRlcm1zLWxpbmsnKSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS10ZXJtcy1ncmlkJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgna2V5LXRlcm0nKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIuMTI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS10ZXJtLXRpdGxlJykge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjg3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdrZXktdGVybS10aXRsZS1saW5rJykge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgna2V5LXRlcm0tZGVzYycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdhcmNoaXZlcy1pbm5lcicpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxufVxuXG4ucmVmcy1hcmNoaXZlIHtcbiAgICAkcm9vdDogJjtcbiAgICBtYXJnaW46IDAgMCAzcmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnaW1hZ2Utd3JhcHBlcicpIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZScpIHtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2UtaW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMS41cmVtIDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtbGluaycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAxLjEyNXJlbTtcbiAgICB9XG5cbiAgICAmOmhvdmVyICYge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdpbWFnZScpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKC4yMTUsIC42MSwgLjM1NSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yZWZzLWZhcS1zZWN0aW9uIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICBwYWRkaW5nOiAyLjI1cmVtIDAgMDtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NlYXJjaCcpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NlYXJjaC1maWVsZCcpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0ZW07XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0ZW07XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjVlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogLjc1ZW0gM2VtIC43NWVtIDEuMjVlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXItY29sb3IoJHNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnc2VhcmNoLWJ0bicpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAuNDM3NXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjUwbXM7XG4gICAgICAgIHdpZHRoOiAzcmVtO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgc3ByaXRlKCdzZWFyY2gtaWNvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucmVmcy1mYXFzIHtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpdGVtJykge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcignaGlkZGVuJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0tdGl0bGUnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7Ly8xcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjEyNXJlbSAyLjVyZW07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMsIGJhY2tncm91bmQgMjAwbXMsIGJvcmRlci1jb2xvciAyMDBtcztcblxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpdGVtLWNvbnRlbnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWxlLWdyZXk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMS44NzVyZW0gMi41cmVtIDEuNXJlbTtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpdGVtLWJ1dHRvbicpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cbn1cblxuLnJlZnMtc2lkZWJhci1jb2x1bW4ge1xuICAgIHBhZGRpbmctdG9wOiAxLjg3NXJlbTtcbn1cblxuLnJlZnMtc2lkZWJhciB7XG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9wJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjE4NzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndG9vbHMnKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNjI1cmVtO1xuXG4gICAgICAgIC5yZXNvdXJjZS10aWxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLnJlZnMtYm90dG9tLWFyY2hpdmVzIHtcbiAgICBiYWNrZ3JvdW5kOiAkcGFsZS1ncmV5O1xuXG4gICAgLnJvdyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0LjVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Q4ZDhkODtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTQuMTY2NjY2JTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yZWZzLWJvdHRvbS1hcmNoaXZlIHtcblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBtYXJnaW46IDAgMCAuNzVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUtbGluaycpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogJHJ1YmlrLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRyZW0pIHtcbiAgICAucmVmcy1zaWRlYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnYnV0dG9uJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcbiAgICAucmVmcy1jb250ZW50LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMi4zNzVyZW07XG4gICAgfVxuXG4gICAgLnJlZnMtY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS10ZXJtcycpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2tleS10ZXJtLWRlc2MnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlZnMtYXJjaGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2Rlc2MnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlZnMtZmFxLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWZzLWZhcXMge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuMzEyNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS4zMTI1cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0tdGl0bGUnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xuICAgICAgICAgICAgcGFkZGluZzogMS4xMjVyZW0gMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnaXRlbS1jb250ZW50Jykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDEuNXJlbSAuNXJlbTtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ2l0ZW0tYnV0dG9uJykge1xuICAgICAgICAgICAgcGFkZGluZzogLjc1ZW0gMS41ZW07XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5yZWZzLXNpZGViYXIge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWZzLWJvdHRvbS1hcmNoaXZlcyB7XG4gICAgICAgIC5yb3cge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWZzLWJvdHRvbS1hcmNoaXZlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdkZXNjJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbC12ZXJ0aWNhbCkge1xuICAgIC5yZWZzLWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCd0b3AnKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVmcy1mYXEtc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnZGVzYycpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3NlYXJjaC1maWVsZCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAuODc1ZW0gM2VtIC44NzVlbSAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZWxlbWVudCgnc2VhcmNoLWJ0bicpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAuMzc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlZnMtZmFxcyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICB9XG5cbiAgICAucmVmcy1zaWRlYmFyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3Rvb2xzJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWZzLWFyY2hpdmUge1xuICAgICAgICBAaW5jbHVkZSBlbGVtZW50KCdidXR0b24nKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4uY2F0ZWdvcnktdG9wIHtcblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0b29scycpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RvcCcpIHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3Rvb2xzJykge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdmdXR1cmEtcHQnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udG9vbHMtZ3JpZC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNC43NXJlbTtcbiAgICBwYWRkaW5nLXRvcDogNC4xMjVyZW07XG59XG5cbi50b29scy1ncmlkIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpdGVtJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzLjM3NXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCdpbm5lcicpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcbiAgICAudG9vbHMtZ3JpZC1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDMuODc1cmVtO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi9taXhpbnMnO1xuXG4udGVybXMtY29udGVudC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNi43NXJlbTtcbn1cblxuLnRlcm0tYXJ0aWNsZSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcblxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGVsZW1lbnQoJ3RpdGxlJykge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIH1cbn1cblxuLnBvc3QtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3Rlcm0nKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogM3JlbSA2LjI1cmVtIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRlcm1zLXNpZGViYXItY29sdW1uIHtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjRyZW0pIHtcbiAgICAudGVybXMtY29udGVudC1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gICAgfVxuXG4gICAgLnBvc3QtY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIG1vZGlmaWVyKCd0ZXJtJykge1xuICAgICAgICAgICAgcCxcbiAgICAgICAgICAgIHVsLFxuICAgICAgICAgICAgb2wge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAtMy4yNXJlbSAyLjg3NXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDQuMjVyZW0gMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICAucG9zdC1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3Rlcm0nKSB7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgLTIuODc1cmVtIDIuODc1cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMy44NzVyZW0gMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuICAgIC50ZXJtcy1jb250ZW50LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIH1cblxuICAgIC5wb3N0LWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBtb2RpZmllcigndGVybScpIHtcbiAgICAgICAgICAgIHAsXG4gICAgICAgICAgICB1bCxcbiAgICAgICAgICAgIG9sIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIC0xLjMxMjVyZW0gMS44NzVyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbSAyLjVyZW0gMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRlcm0tYXJ0aWNsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwtdmVydGljYWwpIHtcbiAgICAucG9zdC1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgbW9kaWZpZXIoJ3Rlcm0nKSB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIC0xcmVtIDEuODc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uL21peGlucyc7XG5cbi5ob21lLXRvcCB7XG4gICAgQGluY2x1ZGUgbW9kaWZpZXIoJ2xhbmcnKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQyMHB4O1xuICAgIH1cbn1cblxuLmhvbWUtYWJvdXQtbGFuZy1zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAxLjYyNXJlbSAwIDA7XG59XG5cbi5ob21lLWxhbmctdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdtYXJnaW4nKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIuNjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdhbGlnbi1sZWZ0Jykge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuXG4uYmxvY2txdW90ZSB7XG4gICAgJi5ob21lLWFib3V0LWxhbmctYmxvY2txdW90ZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5wb3N0LWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1vZGlmaWVyKCdsYW5nJykge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDIuNjI1cmVtIDAgMi4zNzVyZW07XG5cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDE1ZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRydWJpay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMTVlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMS41ZW07XG5cbiAgICAgICAgICAgICAgICAmICsgcCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uaG9tZS1jb250ZW50LWxhbmctc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMCAwIDQuMzc1cmVtO1xufVxuXG4uaG9tZS1sYW5nLXJlcG9ydHMge1xuICAgIC5saXN0LWl0ZW0ge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhvbWUtbGFuZy1wcmVzcy1yZWxlYXNlIHtcbiAgICBtYXJnaW46IDEuMjVyZW0gMCAycmVtO1xuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgndGl0bGUnKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBlbGVtZW50KCd0aXRsZS1saW5rJykge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZWxlbWVudCgnZXhjZXJwdCcpIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcnViaWstZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4uaG9tZS1ibG9nLWxhbmctYXJ0aWNsZXMge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHJlbTtcblxuICAgIC5saXN0LWl0ZW0ge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== */
