/* Experimental Mixin Support */
.hero-desc, .promoRewards-reward img, .promoFooter-content, .widget-profiler-progress-notice, .widget-surveys-interview, .widget-surveys-container, .header-surveyNotification [image='survey'] {
  position: absolute;
  transform: translateY(-50%);
  top: 50%; }

/* ==================================== */
/* Bootstrap variables
/* ==================================== */
.widgetContainer-widget, .header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  border-radius: 7px;
  padding: 16px; }

.widgetContainer-widget, .header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1); }

.widgetContainer-widget, .header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  background: white;
  border: 1px solid #eaeaea; }

.footer {
  padding: 32px 0;
  background: #471E5E;
  margin-top: -110px; }
  .footer .container, .footer .hero-desc {
    color: #fff; }
  .footer .smallerText {
    font-size: 12px; }

.components_languageSelector {
  float: left;
  margin-right: 8px; }
  .components_languageSelector .btn-default {
    border: 1;
    border-color: #fff;
    font-size: 14px;
    line-height: 38px;
    background-color: transparent !important;
    outline: none;
    box-shadow: none !important;
    padding: 0px 8px 0px 8px; }

.footer-links-row {
  margin-bottom: 16px;
  font-weight: 300;
  font-size: 13px; }
  .footer-links-row:last-child {
    margin-bottom: 0; }

.footer-links-col {
  float: left; }
  .footer-links-col:before, .footer-links-col:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .footer-links-col:after {
    clear: both; }
  .footer-links-col:last-child {
    float: right; }

.footer-links-link {
  color: #fff;
  text-decoration: none;
  padding-right: 32px; }
  .footer-links-link:last-child, .footer-links-link.noBorder {
    margin-right: 0;
    border-right: 0; }

.footer-links-link--social {
  color: #fff;
  text-align: center;
  font-size: 18px;
  position: relative;
  margin-left: 16px;
  display: inline-block; }

@media only screen and (max-width: 830px) {
  .footer-links-col, .footer-links-col:last-child {
    display: block;
    float: none;
    text-align: left;
    margin-bottom: 16px; }
  .footer-links-link {
    display: block;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #aaa; }
  .footer-links-link--social {
    margin-left: 0;
    margin-right: 16px; } }

.header {
  height: 80px;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: #fff;
  box-shadow: 0 0 13px rgba(0, 0, 0, 0.5);
  z-index: 1000;
  position: fixed;
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex; }
  .header .components_languageSelector {
    float: left;
    margin-right: 8px; }
    .header .components_languageSelector .btn-default {
      border: 0;
      font-size: 14px;
      line-height: 45px;
      background-color: transparent !important;
      outline: none;
      box-shadow: none !important;
      padding: 4px; }
  .header .header-mobile-join {
    display: none; }
  .header .login {
    margin-right: 8px; }
  .header .signup {
    margin-right: 16px; }
  .header .container, .header .hero-desc {
    width: 100%;
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -moz-box-pack: justify;
    box-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    -ms-justify-content: space-between;
    -o-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-pack: justify;
    -webkit-box-align: center;
    -moz-box-align: center;
    box-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    -ms-align-items: center;
    -o-align-items: center;
    align-items: center;
    -ms-flex-align: center; }
  .header .link {
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    position: relative;
    line-height: 65px; }
    .header .link [icon], .header .link .fa.fa-star-o {
      height: 14px;
      width: 14px;
      margin-right: 4px;
      fill: #323232; }
    .header .link:after {
      content: " ";
      position: absolute;
      height: 6px;
      bottom: -8px;
      right: 0;
      left: 0;
      background: transparent;
      transition-property: all;
      transition-duration: .5s; }
    .header .link:hover:after {
      background: #03fff5; }
    .header .link.active:after {
      content: " ";
      background: #00827d; }
  .header img {
    max-height: 60px; }

.header-logo {
  float: left;
  margin-right: 0 !important; }

.header-nav-active {
  color: #003633 !important;
  border-bottom: 7px solid transparent;
  font-weight: 600; }

.header-balance {
  text-align: right;
  padding-right: 32px; }

.header-col {
  text-align: center; }
  .header-col:nth-child(1) {
    text-align: left;
    margin-left: 0;
    margin-right: auto; }
  .header-col:nth-child(2) {
    text-align: center;
    margin: auto; }
  .header-col:nth-child(3) {
    text-align: right;
    margin-left: auto;
    margin-right: 0; }

.header-col-block {
  display: inline-block;
  margin-right: 32px;
  color: #323232; }
  .header-col-block .fa ~ span {
    padding-left: 3px; }

.header-bars {
  display: none;
  float: right;
  font-size: 27px;
  color: #00827d; }

@media only screen and (max-width: 830px) {
  .header {
    height: 50px; }
    .header .components_languageSelector {
      display: none; }
    .header .container, .header .hero-desc {
      padding: 0 16px; }
    .header img {
      max-height: 35px; }
    .header .header-col:nth-child(1) {
      width: calc(100% - 50px); }
    .header .header-col:nth-child(2) {
      display: none; }
    .header .header-col:nth-child(3) {
      width: 50px; }
    .header .login, .header .signup, .header .joinNow {
      display: none; }
    .header .header-bars {
      display: inline-block; }
    .header .header-mobile-join {
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      display: block;
      border-radius: 0;
      line-height: 45px;
      font-size: 14px;
      padding: 0 16px;
      z-index: 10; }
    .header .header-logo {
      float: none;
      margin-right: 0;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translateX(-50%) translateY(-50%); }
    .header .header-bars {
      border-left: 1px solid #eaeaea;
      height: 50px;
      padding-left: 16px;
      padding-right: 0; }
      .header .header-bars .fa-bars {
        line-height: 50px; } }

.hero {
  background-repeat: no-repeat;
  background-position: top center;
  min-height: 300px;
  padding: 30px 0;
  color: #fff;
  position: relative;
  text-align: center;
  z-index: 0; }
  .hero .container, .hero .hero-desc {
    z-index: 1;
    width: 800px; }
  .hero .button {
    min-width: 200px;
    margin-top: 16px;
    font-weight: 700; }

.hero-yellow {
  color: #FDCE5D; }

.hero-desc {
  position: absolute;
  z-index: 1;
  top: 50%; }
  .hero-desc h1 {
    font-size: 45px;
    font-weight: 500;
    line-height: 55px; }
  .hero-desc p {
    line-height: 25px;
    font-weight: 300;
    font-size: 16px; }
  .hero-desc a:not(.button) {
    color: #FDCE5D; }

@media only screen and (max-width: 830px) {
  .hero {
    min-height: 100%;
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }
    .hero .container, .hero .hero-desc {
      width: auto; }
    .hero .hero-desc {
      position: relative;
      top: 0;
      transform: translateY(0); }
      .hero .hero-desc h1 {
        font-size: 40px;
        line-height: 55px; } }

@media only screen and (max-width: 600px) {
  .hero .hero-desc h1 {
    font-size: 25px;
    line-height: 32px; }
  .hero .hero-desc-content {
    display: none; } }

.boxShadow--top {
  box-shadow: -1px -4px 10px -2px rgba(0, 0, 0, 0.37);
  padding-top: 1rem; }

.site-overlay {
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  position: fixed;
  background: #000; }

.mobileHeader {
  position: fixed;
  top: 0;
  width: 100%;
  bottom: 0;
  transform: translateX(-100%);
  transition-property: all;
  transition-duration: .5s;
  overflow-x: hidden;
  z-index: 1001; }
  .mobileHeader .surveys .notification-bubble {
    margin-left: 8px;
    transform: translateY(-1px); }
  .mobileHeader .profileInfo {
    padding: 16px; }
  .mobileHeader.mobileHeader--secondary {
    transform: translateX(100%);
    visibility: hidden; }
    .mobileHeader.mobileHeader--secondary:before {
      background: rgba(0, 0, 0, 0.5);
      bottom: 0;
      content: '';
      display: none;
      left: 0;
      position: fixed;
      right: 0;
      top: 0; }
    .mobileHeader.mobileHeader--secondary .rewards-selection-menu-select {
      border-bottom: none;
      box-shadow: none; }
    .mobileHeader.mobileHeader--secondary .mobileHeader-close {
      right: inherit;
      left: 0; }
    .mobileHeader.mobileHeader--secondary .mobileHeader-content {
      right: 0;
      left: inherit;
      overflow-y: scroll;
      padding-bottom: 200px;
      font-size: 1rem; }
    .mobileHeader.mobileHeader--secondary .mobileHeader--secondary__title {
      border-bottom: 1px solid #eaeaea;
      margin-bottom: 2rem;
      vertical-align: middle;
      height: 50px;
      line-height: 50px;
      text-align: center;
      text-transform: uppercase;
      font-size: 1rem; }
    .mobileHeader.mobileHeader--secondary .rewards-selection-menu-amount {
      margin-left: 1.5rem;
      margin-right: 1.5rem;
      border: none;
      box-shadow: none; }
    .mobileHeader.mobileHeader--secondary .rewards-selection-title {
      border: none; }
    .mobileHeader.mobileHeader--secondary .rewards-selection-title.rewards-selection-symbol {
      margin-top: 1rem; }
    .mobileHeader.mobileHeader--secondary .mobileHeader--secondary__actions {
      list-style: none;
      margin-left: 2rem;
      margin-right: 2rem;
      padding: 1rem 0 0; }
      .mobileHeader.mobileHeader--secondary .mobileHeader--secondary__actions li {
        border-bottom: 1px solid #eaeaea;
        margin-bottom: 1.2rem;
        margin-top: 1.2rem;
        padding-bottom: 1rem;
        font-size: 1rem; }
      .mobileHeader.mobileHeader--secondary .mobileHeader--secondary__actions button {
        background: none;
        border: none;
        text-align: left;
        width: 100%; }
    .mobileHeader.mobileHeader--secondary .rzslider .rz-bubble {
      font-size: 1rem; }
    .mobileHeader.mobileHeader--secondary .contentAndLinks-links-link {
      border-width: 0 0 1px 0;
      font-size: 1rem; }

.mobileHeader__footerActions {
  background: white;
  bottom: 0;
  left: 50px;
  padding-bottom: 3rem;
  position: fixed;
  right: 0; }
  .mobileHeader__footerActions > div > * {
    display: block;
    margin: 0.75rem 1rem; }

.mobileHeader-logo {
  float: left; }

.mobileHeader-profile {
  float: left;
  margin-left: 16px;
  width: calc(100% - 150px); }

.mobileHeader-cart {
  float: right;
  height: 37px;
  position: relative; }
  .mobileHeader-cart [icon] {
    height: 25px;
    width: 25px;
    position: absolute;
    top: 50%;
    right: 12px;
    margin-top: -15px;
    fill: #323232; }
  .mobileHeader-cart .notification-bubble {
    position: absolute;
    right: 8px;
    top: 50%;
    margin-top: 2px;
    z-index: 1; }
  .mobileHeader-cart:before {
    position: absolute;
    top: -16px;
    bottom: -16px;
    right: 65px;
    background: #eaeaea;
    width: 1px;
    content: " "; }

.mobileHeader-profile-name {
  display: block;
  color: #001c1b;
  font-weight: 600;
  font-size: 14px;
  max-width: 120px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.mobileHeader-profile-balance {
  display: block;
  color: #323232;
  font-size: 13px;
  margin-top: 3px; }

.mobileHeader-profileProgress {
  background: #00827d;
  display: inline-block;
  margin-right: 3px;
  padding: 2px 0;
  width: 40px;
  text-align: center;
  border-radius: 3px;
  color: white;
  font-size: 12px; }

.mobileHeader-logo {
  max-height: 40px;
  max-width: 110px; }

.mobileHeader-overlay {
  position: fixed;
  display: none;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #333;
  opacity: .8;
  z-index: -2; }

.mobileHeader-content-row {
  padding: 8px 16px; }
  .mobileHeader-content-row:before, .mobileHeader-content-row:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .mobileHeader-content-row:after {
    clear: both; }

.mobileHeader-content-link {
  padding: 16px 0;
  display: block;
  color: #656565;
  text-transform: uppercase;
  font-size: 15px;
  font-weight: 500;
  margin-left: -16px;
  margin-right: -16px;
  padding: 16px;
  background-color: white; }
  .mobileHeader-content-link .fa {
    padding-right: 8px; }
  .mobileHeader-content-link .fa.fa-star-o {
    padding-right: 0;
    color: #000; }
  .mobileHeader-content-link [icon], .mobileHeader-content-link .fa.fa-star-o {
    height: 15px;
    width: 15px;
    margin-left: 11px;
    margin-right: 17px;
    transform: translateY(-1px);
    fill: #323232; }
  .mobileHeader-content-link.bottomBorder {
    border-bottom: 1px solid #eaeaea; }
  .mobileHeader-content-link.sublink {
    padding-left: 80px; }
  .mobileHeader-content-link.active, .mobileHeader-content-link.active:hover {
    background: #00827d;
    color: white; }
    .mobileHeader-content-link.active [icon], .mobileHeader-content-link.active:hover [icon] {
      fill: white; }
    .mobileHeader-content-link.active .fa.fa-star-o, .mobileHeader-content-link.active:hover .fa.fa-star-o {
      color: white; }
    .mobileHeader-content-link.active .mobileHeader-profileProgress, .mobileHeader-content-link.active:hover .mobileHeader-profileProgress {
      background: white;
      color: #323232; }
  .mobileHeader-content-link:hover {
    background: #eaeaea; }

.mobileHeader-content-row--border {
  border-bottom: 1px solid #eaeaea; }

.mobileHeader-close {
  position: absolute;
  right: 0;
  top: 0;
  width: 50px;
  height: 50px;
  line-height: 50px;
  background: #00827d;
  text-align: center;
  font-size: 20px;
  color: white; }

.mobileHeader-content {
  width: calc(100% - 50px);
  background: white;
  position: absolute;
  overflow: visible;
  bottom: 0;
  top: 0;
  left: 0;
  z-index: 1; }

@media only screen and (max-width: 830px) {
  body.mobile-nav-open {
    overflow: hidden;
    height: 100%; }
    body.mobile-nav-open .mobileHeader-overlay {
      display: block; }
    body.mobile-nav-open .site-overlay {
      display: block;
      opacity: .7;
      z-index: 1000; }
    body.mobile-nav-open .mobileHeader:not(.mobileHeader--secondary) {
      transform: translateX(0);
      display: block; }
  body.mobile-nav-open--secondary {
    overflow: hidden;
    height: 100%; }
    body.mobile-nav-open--secondary .mobileHeader-overlay,
    body.mobile-nav-open--secondary .rewards-mobile-submenu,
    body.mobile-nav-open--secondary .rewards-mobile-submenu > * .site-overlay,
    body.mobile-nav-open--secondary .header {
      z-index: 1; }
    body.mobile-nav-open--secondary .mobileHeader.mobileHeader--secondary {
      visibility: visible;
      transform: translateX(-8px); }
      body.mobile-nav-open--secondary .mobileHeader.mobileHeader--secondary:before {
        display: block; } }

@media only screen and (min-width: 600px) and (max-width: 830px) {
  body.mobile-nav-open--secondary .mobileHeader.mobileHeader--secondary {
    transform: translateX(-16px); } }

.promoRewards {
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
  text-align: center; }

.promoRewards-reward {
  display: block;
  background: #fff;
  height: 120px;
  width: 120px;
  padding: 8px;
  border-radius: 50%;
  float: left;
  margin: 8px;
  transition-duration: 2s;
  transition-property: opacity;
  transform: translateY(0px);
  opacity: 1; }
  .promoRewards-reward img {
    max-width: 75%;
    left: 12%; }

.promoRewards-reward.ng-enter {
  opacity: 0; }

.promoRewards-reward.ng-enter-active {
  opacity: 1; }

.promoRewards-reward.ng-leave {
  display: none !important; }

@media only screen and (max-width: 1039px) {
  .promoRewards .promoRewards-reward {
    width: 90px;
    height: 90px; } }

@media only screen and (max-width: 850px) {
  .promoRewards {
    text-align: center; }
    .promoRewards .promoRewards-reward {
      width: 80px;
      height: 80px;
      display: inline-block;
      float: none; } }

@media only screen and (max-width: 830px) {
  .promoRewards {
    position: relative;
    transform: translateY(0);
    top: auto;
    right: auto;
    left: auto;
    bottom: auto; } }

.promoFooter {
  margin: 16px 0; }
  .promoFooter:before, .promoFooter:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .promoFooter:after {
    clear: both; }
  .promoFooter .container, .promoFooter .hero-desc {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -moz-box-pack: justify;
    box-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    -ms-justify-content: space-between;
    -o-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-pack: justify; }
  .promoFooter h3 {
    font-weight: 500; }
  .promoFooter p {
    font-weight: 300; }
  .promoFooter .button {
    border-radius: 5px;
    border: 1px solid #fff;
    color: #fff;
    font-size: 15px;
    padding: 12px 32px; }
    .promoFooter .button:hover {
      background: rgba(255, 255, 255, 0.1); }

.promoFooter-content {
  position: relative;
  color: #fff; }

.promoFooter-overlay {
  z-index: 0;
  background: #444;
  opacity: .85;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 10px;
  bottom: 0;
  width: 100%;
  height: 100%; }

.promoFooter-promo {
  background: #000;
  position: relative;
  border-radius: 10px;
  box-sizing: border-box;
  padding: 16px;
  margin: auto;
  height: 300px;
  width: 30%; }

.promoFooter-overlay-green .promoFooter-overlay {
  background: black; }

@media only screen and (max-width: 830px) {
  .promoFooter .container, .promoFooter .hero-desc {
    display: block; }
  .promoFooter-promo {
    width: 100%;
    margin-bottom: 16px;
    height: auto; }
    .promoFooter-promo .promoFooter-content {
      position: relative;
      transform: translateY(0);
      top: auto;
      right: auto;
      left: auto;
      bottom: auto; } }

.notification-bubble {
  font-size: 11px;
  border-radius: 50%;
  border: 1px solid #C34C4C;
  color: white;
  height: 16px;
  width: 16px;
  line-height: 16px;
  text-align: center;
  display: inline-block;
  background: #C34C4C; }

body.siteNotificationShow {
  padding-top: 40px; }
  body.siteNotificationShow .header {
    top: 40px; }
  body.siteNotificationShow .modal {
    margin-top: 40px; }

.siteNotification {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2000;
  padding: 10px 15px;
  font-size: 15px;
  border-radius: 0;
  opacity: 1;
  padding-right: 60px;
  text-align: center; }
  .siteNotification.default, .siteNotification.success {
    color: #fff;
    background: #333333;
    border-bottom: 1px solid #1a1a1a; }
    .siteNotification.default .label, .siteNotification.default .fa, .siteNotification.success .label, .siteNotification.success .fa {
      color: #fff; }
  .siteNotification.error {
    color: #fff;
    background: #e8756b;
    border-bottom: 1px solid #e14c3f; }
    .siteNotification.error .label, .siteNotification.error .fa {
      color: #fff; }
  .siteNotification.warning {
    color: #666;
    background: #FDCE5D;
    border-bottom: 1px solid #fcbf2b; }
    .siteNotification.warning .label, .siteNotification.warning .fa {
      color: #666; }
  .siteNotification .label {
    position: relative;
    display: inline-block;
    margin-right: 0px;
    font-weight: 300;
    text-align: left; }
    .siteNotification .label .message {
      display: block;
      padding-left: 30px; }
  .siteNotification .fa-warning {
    display: inline; }
  .siteNotification .fa-check {
    display: none; }
  .siteNotification .fa-warning, .siteNotification .fa-check {
    position: absolute;
    top: 50%;
    left: 0px;
    margin-top: -7px; }
  .siteNotification .fa-close {
    position: absolute;
    top: 50%;
    margin-top: -8px;
    right: 15px;
    color: #fff; }
  .siteNotification a {
    color: #FDCE5D; }
  .siteNotification.slideup {
    display: none; }
  .siteNotification.success .fa-check {
    display: inline; }
  .siteNotification.success .fa-warning {
    display: none; }

@media only screen and (max-width: 560px) {
  .siteNotification {
    margin-top: 0;
    font-size: 13px; } }

.notGranted {
  opacity: .3; }

.badge-messages {
  text-align: center;
  padding-bottom: 24px; }

.badge-details {
  background-color: white;
  border: 1px solid #f3f3f3;
  border-top-left-radius: 7px;
  border-top-right-radius: 7px;
  box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1);
  padding: 0px; }
  .badge-details .tier-row::after {
    clear: both;
    content: "";
    display: table; }
  .badge-details .tier-row .tier-button {
    padding-top: 10px;
    box-sizing: border-box;
    width: 20%;
    float: left;
    cursor: pointer;
    border-bottom: 5px solid white; }
    .badge-details .tier-row .tier-button.selected {
      margin-bottom: 0px;
      border-bottom: 5px solid #00827d; }
    .badge-details .tier-row .tier-button:nth-of-type(n+2) {
      border-left: 1px solid #f3f3f3; }
    .badge-details .tier-row .tier-button .tier-button-icon {
      width: 50%; }

.badge-dashboard {
  background-color: white;
  border-bottom-left-radius: 7px;
  border-bottom-right-radius: 7px;
  box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1); }
  .badge-dashboard::after {
    clear: both;
    content: "";
    display: table; }
  .badge-dashboard .badge-container {
    width: 25%;
    float: left; }
    .badge-dashboard .badge-container p {
      margin-top: 0; }
  .badge-dashboard .badge-icon {
    width: 70%;
    padding-bottom: 8px; }
  .badge-dashboard .badge-info {
    padding: 16px; }
    .badge-dashboard .badge-info .badge-title {
      margin: 0px; }
  .badge-dashboard .tier {
    width: 20.2%;
    height: 100%;
    float: left; }
    .badge-dashboard .tier.no-badges {
      width: 100%; }
      .badge-dashboard .tier.no-badges .tier-icon {
        width: 23%; }
    .badge-dashboard .tier .tier-container {
      border-right: 1px solid #f3f3f3; }
    .badge-dashboard .tier .tier-icon {
      width: 80%;
      margin-bottom: 8px; }
    .badge-dashboard .tier .tier-info {
      padding: 16px;
      text-align: center; }
  .badge-dashboard .tier-container, .badge-dashboard .badge-container {
    height: 100%;
    padding-top: 10px;
    text-align: center; }

.mobile-container {
  display: none; }

@media only screen and (max-width: 800px) {
  .desktop-container h2 {
    font-size: 22px; }
  .desktop-container h4 {
    font-size: 18px; } }

@media only screen and (max-width: 600px) {
  .desktop-container {
    display: none; }
  .mobile-container {
    display: block;
    background-color: white;
    border: 1px solid #f3f3f3;
    border-radius: 7px;
    box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1);
    padding: 0px; }
    .mobile-container .mobile-badge-header.ng-hide {
      opacity: 0; }
    .mobile-container .badge-row {
      border-top: 1px solid #f3f3f3; }
    .mobile-container .badge-row-icon {
      width: 15%;
      float: left;
      margin-left: 20%; }
    .mobile-container .badge-row-title {
      width: 60%;
      float: left;
      text-align: left;
      box-sizing: border-box;
      margin: 5% 0 5% 4%; }
      .mobile-container .badge-row-title h4 {
        margin: 0; }
    .mobile-container .tier-cover {
      border-top: 1px solid #f3f3f3; }
    .mobile-container .tier-cover::after, .mobile-container .badge-row::after {
      clear: both;
      content: "";
      display: table; }
    .mobile-container .tier-cover-button {
      width: 20%;
      float: left;
      margin-right: 5%;
      color: #828181;
      margin: 7% 5% 7% 0; }
      .mobile-container .tier-cover-button .fa-2x {
        font-size: 1.5em; }
    .mobile-container .tier-cover-icon {
      width: 20%;
      float: left;
      margin-left: 5%; }
    .mobile-container .tier-cover-title {
      width: 50%;
      float: left;
      margin: 7% 0;
      box-sizing: border-box; }
      .mobile-container .tier-cover-title h2 {
        margin: 0; } }

@media only screen and (max-width: 400px) {
  .mobile-container h2 {
    font-size: 17px; }
  .mobile-container h4 {
    font-size: 14px; }
  .mobile-container .badge-row-icon {
    margin-left: 17%; } }

.badge-messages,
.loyalty-level {
  text-align: center;
  padding-bottom: 24px; }
  .badge-messages h1,
  .loyalty-level h1 {
    font-weight: 500; }

.badge-dashboard {
  max-height: 100%;
  width: 100%;
  padding: 10px 0px;
  border: 1px solid #f3f3f3;
  border-radius: 7px;
  background-color: white;
  box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1); }
  .badge-dashboard::after {
    clear: both;
    content: "";
    display: table; }
  .badge-dashboard .notGranted {
    opacity: 0.3; }
  .badge-dashboard.tier-noBadges .badges {
    width: auto; }
  .badge-dashboard.tier-noBadges .tier {
    margin: 0px auto;
    float: none; }
  .badge-dashboard.tier-noBadges .tier-container {
    border: 0 !important; }
  .badge-dashboard .badge-container {
    width: 25%;
    float: left; }
    .badge-dashboard .badge-container p {
      margin-top: 0; }
  .badge-dashboard .badge-icon {
    width: 80%;
    padding-bottom: 8px; }
  .badge-dashboard .badge-info {
    padding: 16px; }
    .badge-dashboard .badge-info .badge-title {
      margin: 0px; }
  .badge-dashboard.no-tier {
    width: 100%;
    margin-bottom: 20px; }
    .badge-dashboard.no-tier .badge-container {
      width: 15%; }
  .badge-dashboard .tier {
    width: 25%;
    height: 100%;
    float: left; }
    .badge-dashboard .tier .tier-container {
      border-right: 1px solid #f3f3f3; }
    .badge-dashboard .tier .tier-icon {
      width: 80%;
      margin-bottom: 8px; }
    .badge-dashboard .tier .tier-info {
      padding: 16px;
      text-align: center; }
    .badge-dashboard .tier.no-tier {
      display: none; }
  .badge-dashboard .tier-container, .badge-dashboard .badge-container {
    height: 100%;
    padding-top: 10px;
    text-align: center; }

@media only screen and (max-width: 800px) {
  .badge-dashboard.tier-noBadges .tier {
    width: 40%; } }

@media only screen and (max-width: 600px) {
  .badge-dashboard .badge-container,
  .badge-dashboard .tier {
    float: none; }
  .badge-dashboard .badge-container {
    width: 100%;
    border-top: 1px solid #f3f3f3; }
    .badge-dashboard .badge-container::after {
      clear: both;
      content: "";
      display: table; }
    .badge-dashboard .badge-container .icon-container {
      width: 30%;
      float: left; }
      .badge-dashboard .badge-container .icon-container .badge-icon {
        width: 50%; }
    .badge-dashboard .badge-container .badge-info {
      width: 70%;
      float: left;
      padding: 0px; }
      .badge-dashboard .badge-container .badge-info .badge-title {
        font-size: 18px;
        padding: 6% 0px; }
    .badge-dashboard .badge-container .badge-description {
      display: none; }
  .badge-dashboard .tier {
    width: 100%;
    margin: auto; }
    .badge-dashboard .tier .tier-container {
      border-right: none; }
    .badge-dashboard .tier .tier-icon {
      width: 45%; }
  .badge-dashboard.tier-noBadges .tier {
    width: 100%;
    margin: auto; }
    .badge-dashboard.tier-noBadges .tier .tier-container {
      border-right: none; }
    .badge-dashboard.tier-noBadges .tier .tier-icon {
      width: 45%; } }

@media only screen and (max-width: 350px) {
  .badge-dashboard .badge-info {
    padding: 12px; } }

.miniPoll * {
  font: inherit !important;
  font-family: "Source Sans Pro", sans-serif;
  font-weight: 500; }

.miniPoll .pds-votebutton-outer .pds-vote-button {
  background: #00827d !important;
  border: 1px solid #00827d !important;
  color: #fff !important;
  padding: 4px 30px !important; }

.miniPoll .pds-question-top {
  font-weight: 600 !important;
  font-size: 16px !important;
  margin-bottom: 16px !important;
  display: block; }

.miniPoll .pds-votebutton-outer {
  float: none !important;
  padding: 0 !important;
  margin-top: 0 !important; }
  .miniPoll .pds-votebutton-outer .pds-links {
    float: none !important;
    padding: 0 !important;
    margin-top: 16px; }
  .miniPoll .pds-votebutton-outer .pds-vote-button {
    display: inline-block !important;
    float: none !important;
    max-width: 200px; }
  .miniPoll .pds-votebutton-outer a {
    float: none !important;
    color: #00827d !important; }

.widget-offers-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  padding: 0.5rem; }

.widget-offers-list-item {
  align-items: stretch;
  border-radius: 7px;
  border: 1px solid #eaeaea;
  box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1);
  display: flex;
  height: 8.5rem;
  margin-bottom: 0.8rem;
  overflow: hidden;
  width: 100%;
  transition-property: box-shadow, transform;
  transition-duration: 0.2s; }

@media only screen and (min-width: 600px) {
  .widget-offers-list-item {
    width: 49%; } }

.widget-offers-list-item:hover {
  -webkit-box-shadow: 0 10px 10px -4px #9e9b9e;
  -moz-box-shadow: 0 10px 10px -4px #9e9b9e;
  box-shadow: 0 10px 10px -4px #9e9b9e;
  transform: translateY(-5px); }

.widget-offers-list-item--survey a,
.widget-offers-list-item--offer a {
  text-decoration: none; }

.widget-offers-list-item--survey a {
  border-left: 4px solid #5ab414;
  text-decoration: none; }

.widget-offers-list-item--offer {
  position: relative; }

.widget-offers-list-item--offer:after {
  content: '\f005';
  align-items: center;
  background-color: #c34c4c;
  color: white;
  display: flex;
  font: normal normal normal 14px/1 FontAwesome;
  height: 38px;
  justify-content: center;
  position: absolute;
  right: 0;
  width: 38px; }

.widget-offers-list-item--offer a {
  border-left: 4px solid #c34c4c; }

.widget-offers-list-item i,
.widget-offers-list-item svg {
  color: rgba(0, 0, 0, 0.4);
  margin-right: 0.25rem; }

.widget-offers-list-item i svg {
  width: 1rem;
  top: 2px;
  position: relative; }

.widget-offers-list-item a {
  color: initial;
  /* Links inherit a different color -- overriding that */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%; }

.widget-offers-list-item-footer {
  border-top: 1px solid #eaeaea;
  display: flex;
  justify-content: space-between;
  padding: 0.5rem 0.8rem; }

.widget-offers-list-item-footer span[icon] {
  width: 20px; }

.widget-offers-list-item-footerPrompt {
  text-transform: uppercase;
  color: #c34c4c;
  font-weight: bold;
  font-size: 0.8rem; }

.widget-offers-list-item-header {
  display: flex;
  padding: 0.8rem; }

.widget-offers-list-item-header h4 {
  margin-bottom: 0.5rem;
  font-size: 1.2rem; }

.widget-offers-list-item-header h5 {
  margin-bottom: 0;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.4); }

.widget-offers-list-item-header i {
  font-size: 1.4rem;
  margin-top: 0.15rem;
  /** Slight bump for optics with larger header **/ }

.widget-progress {
  padding: 32px;
  padding-top: 32px;
  text-align: center; }
  .widget-progress h3 {
    margin-top: 32px; }
  .widget-progress p {
    margin-top: 16px; }
  .widget-progress .button-green {
    margin-top: 16px; }

.widget-progress-container {
  width: 70%;
  max-width: 300px;
  margin: auto;
  border: 1px solid #efefef;
  border-radius: 50%;
  padding: 8px;
  min-height: 120px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); }
  .widget-progress-container .radial-progress .radial-progress-cover {
    stroke: #1cfff6;
    border: 1px solid #000; }
  .widget-progress-container .radial-progress .radial-progress-background {
    stroke: #00827d; }
  .widget-progress-container .radial-progress .radial-progress-center {
    fill: #fff; }

/* Experimental Mixin Support */
.hero-desc, .promoRewards-reward img, .promoFooter-content, .widget-profiler-progress-notice, .widget-surveys-interview, .widget-surveys-container, .header-surveyNotification [image='survey'] {
  position: absolute;
  transform: translateY(-50%);
  top: 50%; }

/* ==================================== */
/* Bootstrap variables
/* ==================================== */
.widgetContainer-widget, .header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  border-radius: 7px;
  padding: 16px; }

.widgetContainer-widget, .header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  box-shadow: 0 2px 1px 0px rgba(0, 0, 0, 0.1); }

.widgetContainer-widget, .header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  background: white;
  border: 1px solid #eaeaea; }

.widget-profiler-progress {
  padding: 32px;
  padding-top: 32px;
  text-align: center; }
  .widget-profiler-progress h3 {
    margin-top: 32px; }
  .widget-profiler-progress p {
    margin-top: 16px; }
  .widget-profiler-progress .button-green {
    margin-top: 16px; }

.widget-profiler-selectProfiler {
  display: none; }

.widget-profiler-progress-container {
  width: 70%;
  max-width: 300px;
  margin: auto;
  border: 1px solid #efefef;
  border-radius: 50%;
  padding: 8px;
  min-height: 200px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  max-width: 200px;
  float: left;
  margin-left: 30px; }
  .widget-profiler-progress-container .radial-progress .radial-progress-cover {
    stroke: #1cfff6;
    border: 1px solid #000; }
  .widget-profiler-progress-container .radial-progress .radial-progress-background {
    stroke: #00827d; }
  .widget-profiler-progress-container .radial-progress .radial-progress-center {
    fill: #fff; }

.widget-profiler-progress {
  position: relative;
  border-bottom: 1px solid #eaeaea; }
  .widget-profiler-progress:before, .widget-profiler-progress:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .widget-profiler-progress:after {
    clear: both; }

.widget-profiler-progress-notice {
  margin-left: 330px;
  padding-right: 32px;
  text-align: left; }

.widget-profiler-profilers {
  margin: 0 16px;
  margin-bottom: 16px;
  position: relative; }
  .widget-profiler-profilers:before, .widget-profiler-profilers:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .widget-profiler-profilers:after {
    clear: both; }
  .widget-profiler-profilers.consent {
    margin: 0 25px; }
    .widget-profiler-profilers.consent:before {
      width: 0px;
      left: 0px; }
  .widget-profiler-profilers:before {
    width: 1px;
    background: #eaeaea;
    position: absolute;
    top: 0;
    left: 315px;
    content: '';
    height: calc(100% + 16px); }

.widget-profiler-profilers-list {
  float: left;
  width: 300px;
  padding-top: 16px; }
  .widget-profiler-profilers-list a {
    display: block;
    min-height: 35px;
    padding: 0 0 0 45px;
    position: relative;
    margin-bottom: 0;
    color: #323232; }
    .widget-profiler-profilers-list a.incomplete:hover {
      background: #efefef; }
    .widget-profiler-profilers-list a.active, .widget-profiler-profilers-list a.active:hover {
      background: #00827d;
      color: white; }
      .widget-profiler-profilers-list a.active .icon .badge, .widget-profiler-profilers-list a.active:hover .icon .badge {
        background: white;
        color: #323232; }
  .widget-profiler-profilers-list .icon {
    display: block;
    position: absolute;
    left: 7px;
    width: 15px;
    top: 50%;
    margin-top: -19px;
    float: left;
    font-size: 12px;
    font-weight: 200;
    line-height: 35px; }
    .widget-profiler-profilers-list .icon .badge {
      font-size: 12px;
      font-weight: 400;
      background-color: #00827d;
      color: #fff; }
  .widget-profiler-profilers-list .desc {
    display: block;
    line-height: 20px;
    margin-left: 10px;
    margin-right: 10px;
    padding: 7px 0; }
  .widget-profiler-profilers-list .fa-check {
    line-height: 35px;
    display: none; }
  .widget-profiler-profilers-list a.completed {
    color: #aaa; }
    .widget-profiler-profilers-list a.completed .fa-check {
      display: block; }

.widget-profiler-profilers-profiler {
  box-sizing: initial;
  float: right;
  width: calc(100% - 365px);
  padding: 16px; }
  .widget-profiler-profilers-profiler .progress-label {
    margin-top: 32px; }
  .widget-profiler-profilers-profiler.consent {
    float: initial;
    width: initial; }

.consent .parameter-rendered {
  max-width: initial; }

@media only screen and (max-width: 850px) {
  .widget-profiler-selectProfiler {
    display: block;
    padding: 0 16px;
    order: 2;
    margin-top: 16px; }
  .widget-profiler-profilers {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    box-orient: vertical;
    -webkit-box-direction: normal;
    -moz-box-direction: normal;
    box-direction: normal;
    -webkit-flex-direction: column;
    -moz-flex-direction: column;
    flex-direction: column;
    -ms-flex-direction: column;
    margin: 0; }
  .widget-profiler-profilers-list {
    width: 100%;
    order: 3;
    text-align: center; }
  .widget-profiler-profilers-profiler {
    width: 100%;
    margin-left: 0; }
  .widget-profiler-progress {
    padding: 16px; }
  .widget-profiler-progress-container {
    float: none;
    margin: auto; }
  .widget-profiler-progress-notice {
    margin-left: 0;
    padding-right: 0;
    position: relative;
    transform: translateY(0);
    top: auto;
    right: auto;
    left: auto;
    bottom: auto;
    text-align: center;
    margin-top: 32px; }
  .widget-profiler-profilers:before {
    display: none; } }

.radial-progress {
  position: relative; }

.radial-progress-progress {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  width: 100%;
  z-index: 10; }

.radial-progress-percentage {
  font-size: 25px;
  display: block; }

.radial-progress-extra {
  display: block;
  font-size: 14px;
  text-transform: uppercase; }

.radial-progress-svg {
  position: relative;
  display: inline-block; }
  .radial-progress-svg svg {
    transform: rotate(-90deg); }
  .radial-progress-svg circle {
    fill: transparent;
    transform: rotate(0.1deg); }

.radial-progress-background {
  stroke: #00827d; }

.radial-progress-cover {
  stroke: #703296; }

.radial-progress-center {
  fill: #fff; }

.radial-fill {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); }

.widget-surveyHistory .widgetContainer-widget-content {
  margin-top: 0;
  margin-left: -16px;
  margin-right: -16px;
  text-align: center; }

.widget-surveyHistory .button {
  margin: auto;
  margin-bottom: 16px; }

.widget-surveyHistory .table {
  font-size: 14px;
  text-align: left; }

.widget-surveyHistory .table td {
  padding: 16px; }

.widget-surveyHistory td:last-child {
  text-align: right; }

.widget-surveyHistory .stack-label {
  display: none; }

.widget-surveyHistory-noHistoryFound {
  text-align: left;
  padding: 16px; }

.widget-surveys .widgetContainer-widget-content {
  padding-top: 0; }

.widget-surveys-survey {
  border-bottom: 1px solid #eaeaea;
  margin-left: -16px;
  margin-right: -16px;
  padding: 16px;
  padding-top: 8px;
  padding-bottom: 8px;
  position: relative; }
  .widget-surveys-survey:hover {
    background: #eaeaea; }
  .widget-surveys-survey:last-child {
    border-bottom: 0; }

.widget-surveys-interview {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  text-align: center;
  border: 2px solid #00827d;
  line-height: 15px; }

.widget-surveys-container {
  width: 100%; }

.widget-surveys-interview-time {
  font-size: 17px;
  display: block; }

.widget-surveys-interview-minutes {
  font-size: 11px;
  display: block; }

.widget-surveys-amount {
  margin-left: 48px; }

.widget-surveys-row {
  margin-bottom: 16px;
  margin-left: 70px;
  padding-top: 8px; }
  .widget-surveys-row:before, .widget-surveys-row:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .widget-surveys-row:after {
    clear: both; }
  .widget-surveys-row .label, .widget-surveys-row .desc {
    display: block; }
  .widget-surveys-row .label {
    font-weight: 300; }

.widget-surveys-right {
  float: right;
  text-align: right; }

.widget-surveys-left {
  float: left;
  width: 130px; }

.widget-surveys-noSurveys {
  margin-bottom: 16px;
  background: #eaeaea;
  padding: 32px 16px;
  border-radius: 7px;
  text-align: center; }

.widget-surveys-findSurvey {
  background: #eaeaea;
  padding: 16px;
  margin-top: 16px;
  border-radius: 15px; }
  .widget-surveys-findSurvey:before, .widget-surveys-findSurvey:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .widget-surveys-findSurvey:after {
    clear: both; }
  .widget-surveys-findSurvey .desc {
    float: left;
    font-weight: 600;
    line-height: 35px; }
  .widget-surveys-findSurvey [icon] {
    height: 35px;
    width: 35px;
    margin-right: 16px;
    fill: #00827d; }
  .widget-surveys-findSurvey .button {
    float: right; }

@media only screen and (max-width: 600px) {
  .widget-surveys-interview {
    display: none; }
  .widget-surveys-icon {
    display: none; }
  .widget-surveys-row {
    margin-left: 0; }
  .widget-surveys-left {
    margin-left: 0;
    float: none;
    width: auto; }
  .widget-surveys-topic {
    display: block;
    margin-bottom: 8px; }
  .widget-surveys-startNow {
    float: none;
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    right: 16px; } }

.widgetContainer {
  margin: 32px 0;
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -moz-box-pack: justify;
  box-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  -o-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: justify;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  box-lines: multiple;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  .widgetContainer:before, .widgetContainer:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .widgetContainer:after {
    clear: both; }

.widgetContainer-widget {
  min-height: 200px;
  padding: 0;
  box-sizing: border-box; }
  .widgetContainer-widget:before, .widgetContainer-widget:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .widgetContainer-widget:after {
    clear: both; }
  .widgetContainer-widget * {
    box-sizing: border-box; }

.widgetContainer-widget-100 {
  width: 100%; }

.widgetContainer-widget-50 {
  width: calc(50% - 16px); }

.widgetContainer-widget-60 {
  width: calc(60% - 16px); }

.widgetContainer-widget-40 {
  width: calc(40% - 16px); }

.widgetContainer-two .widgetContainer-widget:first-child {
  float: left;
  margin-right: 32px; }

.widgetContainer-two .widgetContainer-widget:last-child {
  float: right; }

.widgetContainer-widget-title {
  border-bottom: 1px solid #eaeaea;
  padding: 16px;
  padding-bottom: 16px;
  font-size: 18px; }

.widgetContainer-widget-content {
  margin-top: 16px;
  padding: 16px; }

@media only screen and (max-width: 980px) {
  .widgetContainer-widget {
    float: none;
    width: 100%;
    display: block;
    margin-bottom: 16px;
    margin-right: 0 !important;
    margin-left: 0 !important; } }

@media only screen and (max-width: 600px) {
  .widgetContainer-widget-title {
    font-size: 15px; } }

.component-modal .modal {
  display: block; }

.component-modal .close {
  font-size: 30px; }

.component-modal .modal-content {
  border-radius: 7px; }

.component-modal .dialog-header-error {
  background-color: #d2322d; }

.component-modal .dialog-header-wait {
  background-color: #428bca; }

.component-modal .dialog-header-notify {
  background-color: #eeeeee; }

.component-modal .dialog-header-confirm {
  background-color: #333333; }

.component-modal .dialog-header-error span, .component-modal .dialog-header-error h4,
.component-modal .dialog-header-wait span, .component-modal .dialog-header-wait h4,
.component-modal .dialog-header-confirm span, .component-modal .dialog-header-confirm h4 {
  color: white; }

.component-modal .modal-title .fa {
  margin-right: 16px; }

.component-modal.noTitleAndFooter .modal-footer, .component-modal.noTitleAndFooter .modal-title {
  display: none; }

.component-modal.noTitleAndFooter .modal-body {
  padding-top: 0; }

.component-modal.noTitleAndFooter .modal-header {
  background-color: transparent !important;
  border-bottom: 0;
  padding-bottom: 0; }

.component-modal.noTitle .modal-title {
  display: none; }

.component-modal.noTitle .modal-body {
  padding-top: 0; }

.component-modal.noTitle .modal-header {
  background-color: transparent !important;
  border-bottom: 0;
  padding-bottom: 0; }

.header .header-accountInfo-account-menu, .header-accountInfo-cart-menu {
  border-left: 0;
  border-right: 0;
  z-index: -1;
  opacity: 0;
  position: absolute;
  transition-property: opacity;
  transition-duration: 0.2s;
  padding: 0;
  top: -5000px;
  border: 2px solid #eaeaea;
  border-radius: 0 0 4px 4px;
  width: 250px;
  position: absolute; }

.header .surveyLink.notification-bubble {
  margin-left: 3px;
  transform: translateY(-10px);
  transition-property: all;
  transition-duration: 0.5s;
  opacity: 0;
  transform: translateY(-1px);
  border: 1px solid red;
  background-color: red; }
  .header .surveyLink.notification-bubble.visible {
    opacity: 1; }

.header [image='arrow-down'] {
  display: inline-block; }

.header [image='arrow-up'] {
  display: none; }

.header .header-accountInfo-account-menu {
  width: 250px;
  right: 0;
  top: -2000px; }
  .header .header-accountInfo-account-menu a {
    border-bottom: 1px solid #eaeaea;
    padding: 16px;
    display: block;
    text-align: left;
    color: #323232;
    text-transform: uppercase;
    font-size: 13px; }
    .header .header-accountInfo-account-menu a:hover {
      background: #00827d;
      color: white; }
      .header .header-accountInfo-account-menu a:hover [image] {
        fill: white; }
    .header .header-accountInfo-account-menu a.active, .header .header-accountInfo-account-menu a.active:hover {
      background: white;
      color: #00827d; }
      .header .header-accountInfo-account-menu a.active [image], .header .header-accountInfo-account-menu a.active:hover [image] {
        fill: #00827d; }
  .header .header-accountInfo-account-menu [image] {
    width: 13px;
    height: 13px;
    margin-right: 8px;
    stroke-color: black; }

.header-surveyNotification {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  border-radius: 0;
  line-height: 48px;
  font-size: 14px;
  padding: 0 16px;
  z-index: 10;
  display: none;
  width: 25px;
  text-align: left; }
  .header-surveyNotification [image='survey'] {
    height: 25px;
    width: 25px;
    fill: white; }
  .header-surveyNotification .notification-bubble {
    position: absolute;
    bottom: 7px;
    right: 7px;
    z-index: 10; }

.header-accountInfo {
  position: relative;
  display: block; }
  .header-accountInfo:before, .header-accountInfo:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .header-accountInfo:after {
    clear: both; }

.header-accountInfo-cart {
  position: relative;
  float: left;
  text-align: left;
  padding: 0 8px;
  min-width: 50px;
  margin-top: 10px;
  min-height: 64px;
  border-bottom: 5px solid transparent; }
  .header-accountInfo-cart:after {
    content: ' ';
    display: block;
    background: #eaeaea;
    width: 1px;
    position: absolute;
    top: -8px;
    left: 0;
    bottom: -5px; }
  .header-accountInfo-cart:before {
    content: ' ';
    display: block;
    background: #eaeaea;
    width: 1px;
    position: absolute;
    top: -8px;
    right: 0;
    bottom: -5px; }
  .header-accountInfo-cart .notification-bubble {
    position: absolute;
    top: 28px;
    left: 50%;
    margin-left: 0px; }
    .header-accountInfo-cart .notification-bubble.visible {
      opacity: 1; }
  .header-accountInfo-cart > a {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    border-bottom: 5px solid transparent;
    height: 64px; }
    .header-accountInfo-cart > a:hover {
      border-bottom: 5px solid #00827d; }
  .header-accountInfo-cart [icon] {
    height: 20px;
    width: 20px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -12px;
    margin-left: -10px; }
  .header-accountInfo-cart.open > a {
    border-bottom: 5px solid #00827d; }
  .header-accountInfo-cart.open .header-accountInfo-cart-menu {
    box-shadow: 0px 12px 14px -4px rgba(0, 0, 0, 0.4);
    opacity: 1;
    right: 0;
    top: 80px;
    left: auto; }

.header-accountInfo-cart-menu {
  width: 300px;
  text-align: left;
  padding: 16px;
  line-height: initial; }
  .header-accountInfo-cart-menu:before {
    position: absolute;
    top: -18px;
    left: auto;
    right: 15px;
    bottom: auto;
    display: inline-block;
    border-right: 18px solid transparent;
    border-bottom: 18px solid #eaeaea;
    border-left: 18px solid transparent;
    border-bottom-color: 18px solid #eaeaea;
    content: ""; }
  .header-accountInfo-cart-menu:after {
    position: absolute;
    top: -17px;
    left: auto1px;
    right: 16px;
    bottom: auto;
    display: inline-block;
    border-right: 17px solid transparent;
    border-bottom: 17px solid white;
    border-left: 17px solid transparent;
    content: ""; }

.header-accountInfo-cart-menu-title {
  font-size: 15px;
  border-bottom: 1px solid #eaeaea;
  padding-bottom: 8px;
  margin-bottom: 16px;
  text-transform: uppercase;
  margin-left: -16px;
  margin-right: -16px;
  padding-left: 16px;
  font-weight: 600; }

.header-accountInfo-cart-menu-quantity {
  text-align: left;
  margin-bottom: 16px; }

.header-accountInfo-cart-menu-total {
  display: block;
  text-align: right;
  padding: 16px 0; }

.header-accountInfo-cart-menu-total .total {
  margin-bottom: 8px; }

.header-accountInfo-cart-menu-checkout,
.header-accountInfo-cart-menu-close {
  margin-top: 8px;
  display: block;
  width: 100%;
  text-align: center; }

.header-accountInfo-cart-menu-items {
  padding-bottom: 8px;
  border-bottom: 1px solid #828181;
  margin-bottom: 8px; }
  .header-accountInfo-cart-menu-items:before, .header-accountInfo-cart-menu-items:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .header-accountInfo-cart-menu-items:after {
    clear: both; }

.header-accountInfo-cart-menu-items-item {
  margin-bottom: 8px;
  position: relative; }
  .header-accountInfo-cart-menu-items-item:before, .header-accountInfo-cart-menu-items-item:after {
    content: "\0020";
    display: block;
    height: 0;
    overflow: hidden; }
  .header-accountInfo-cart-menu-items-item:after {
    clear: both; }

.header-accountInfo-cart-menu-items-item select {
  float: left;
  width: 70px; }

.header-accountInfo-cart-menu-items-item-details {
  margin-left: 86px;
  margin-right: 25px; }

.header-accountInfo-cart-menu-items-item-details [icon] {
  height: 16px;
  width: 16px; }

.header-accountInfo-cart-menu-items-item-details .name {
  display: block;
  font-weight: 600;
  font-size: 14px; }

.header-accountInfo-cart-menu-items-item-details .cost {
  font-size: 13px;
  display: block; }

.header-accountInfo-cart-menu-items-item-details .remove {
  position: absolute;
  right: 16px;
  top: 50%;
  margin-top: -3px; }

.header-accountInfo-balance {
  padding: 0 16px;
  position: relative;
  float: left;
  line-height: 60px;
  font-size: 15px;
  margin-top: 10px;
  min-width: 50px;
  min-height: 64px;
  max-width: 140px;
  text-align: center;
  border-bottom: 5px solid transparent; }
  .header-accountInfo-balance:after {
    content: ' ';
    display: block;
    background: #eaeaea;
    width: 1px;
    position: absolute;
    top: -8px;
    left: 0;
    bottom: -5px; }
  .header-accountInfo-balance .header-accountInfo-balance-text {
    display: inline-block;
    vertical-align: middle;
    line-height: normal; }

.header-accountInfo-account {
  position: relative;
  float: left;
  text-align: left;
  padding: 0 16px;
  min-width: 100px;
  margin-top: 10px;
  min-height: 64px;
  border-bottom: 5px solid transparent; }
  .header-accountInfo-account:after {
    content: ' ';
    display: block;
    background: #eaeaea;
    width: 1px;
    position: absolute;
    top: -8px;
    left: 0;
    bottom: -5px; }
  .header-accountInfo-account:before {
    content: ' ';
    display: block;
    background: #eaeaea;
    width: 1px;
    position: absolute;
    top: -8px;
    right: 0;
    bottom: -5px; }
  .header-accountInfo-account:hover {
    border-bottom: 5px solid #00827d; }

.header-accountInfo-account-name {
  display: block;
  max-width: 90px;
  white-space: nowrap;
  overflow: hidden;
  font-weight: 600;
  text-overflow: ellipsis;
  color: #00827d;
  font-size: 14px;
  padding-top: 8px; }

.header-accountInfo-account-link {
  display: block;
  text-transform: uppercase;
  color: #323232;
  font-size: 14px;
  padding-top: 3px; }
  .header-accountInfo-account-link [image='arrow-down'],
  .header-accountInfo-account-link [image='arrow-up'] {
    width: 15px;
    height: 15px; }

body.account .header-accountInfo-account,
body.account:hover .header-accountInfo-account {
  border-bottom: 5px solid #00827d; }

.header-accountInfo.open .header-accountInfo-account,
.header-accountInfo.open:hover .header-accountInfo-account {
  border-bottom: 5px solid transparent; }

.header-accountInfo.open [image='arrow-down'] {
  display: none; }

.header-accountInfo.open [image='arrow-up'] {
  display: inline-block; }

.header-accountInfo.open .header-accountInfo-account-menu {
  box-shadow: 0px 12px 14px -4px rgba(0, 0, 0, 0.4);
  border-top: 5px solid #00827d;
  border-left: 0;
  border-right: 0;
  opacity: 1;
  top: 80px; }

@media only screen and (max-width: 1020px) {
  .header .header-col:nth-child(2) {
    padding-left: 0; } }

@media only screen and (max-width: 830px) {
  .header .header-accountInfo {
    display: none; }
  .header .header-surveyNotification {
    display: block; }
  .header .header-col:nth-child(3) {
    min-width: auto; } }

.site-content {
  padding-top: 80px;
  padding-bottom: 110px; }
  .site-content > .container, .site-content > .hero-desc {
    padding-bottom: 32px; }

.hero {
  min-height: 250px; }

@media only screen and (max-width: 830px) {
  .site-content {
    padding-top: 50px; }
  .hero {
    min-height: auto; } }

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiYXV0aC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvbGF5b3V0cy9hdXRoL2F1dGguc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvX2NvbmZpZy5zY3NzIiwKCQkiLi4vLi4vc3JjL3NoYXJlZC9zYXNzL19jb25maWcuc2NzcyIsCgkJIi4uLy4uL3NyYy9zaGFyZWQvc2Fzcy9taXhpbnMvX2hlbHBlcnMuc2NzcyIsCgkJIi4uLy4uL3NyYy9zaGFyZWQvc2Fzcy9taXhpbnMvX3RyYW5zaXRpb25zLnNjc3MiLAoJCSIuLi8uLi9zcmMvc2hhcmVkL3Nhc3MvbWl4aW5zL19lbWFpbFJlc2V0LnNjc3MiLAoJCSIuLi8uLi9zcmMvc2hhcmVkL3Nhc3MvbWl4aW5zL19ib3VyYm9uLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLAoJCSIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsCgkJIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwKCQkiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLAoJCSIuLi8uLi9zcmMvc2hhcmVkL3Nhc3MvbWl4aW5zL19pY29uLnNjc3MiLAoJCSIuLi8uLi9zcmMvc2hhcmVkL3Nhc3MvcGxhY2Vob2xkZXJzL19wb2ludGVyLnNjc3MiLAoJCSIuLi8uLi9zcmMvc2hhcmVkL3Nhc3MvcGxhY2Vob2xkZXJzL192ZXJ0aWNhbGx5Q2VudGVyLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL19jb25maWctYm9vdHN0cmFwLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL3BsYWNlaG9sZGVycy9fYm94LnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL3BsYWNlaG9sZGVycy9fY29udGFpbmVyLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL3BsYWNlaG9sZGVycy9faGVyb0FuZFdpZGdldHMuc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvZWxlbWVudHMvX2Zvb3Rlci5zY3NzIiwKCQkiLi4vLi4vc3JjL2JsdWVwcmludHMvbmVjdGFyQ2FudmFzczIvc2Fzcy9lbGVtZW50cy9faGVhZGVyLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19oZXJvLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19tb2JpbGVIZWFkZXIuc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvZWxlbWVudHMvX3Byb21vUmV3YXJkcy5zY3NzIiwKCQkiLi4vLi4vc3JjL2JsdWVwcmludHMvbmVjdGFyQ2FudmFzczIvc2Fzcy9lbGVtZW50cy9fcHJvbW9Gb290ZXIuc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvZWxlbWVudHMvX25vdGlmaWNhdGlvbi1idWJibGUuc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvZWxlbWVudHMvX3NpdGVOb3RpZmljYXRpb24uc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvZWxlbWVudHMvX2JhZGdlRGV0YWlscy5zY3NzIiwKCQkiLi4vLi4vc3JjL2JsdWVwcmludHMvbmVjdGFyQ2FudmFzczIvc2Fzcy9lbGVtZW50cy9fYmFkZ2VzLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19taW5pUG9sbC5zY3NzIiwKCQkiLi4vLi4vc3JjL2JsdWVwcmludHMvbmVjdGFyQ2FudmFzczIvc2Fzcy9lbGVtZW50cy9fb2ZmZXJzLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19wcm9maWxlUHJvZ3Jlc3Muc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvZWxlbWVudHMvX3Byb2ZpbGVyLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19yYWRpYWxQcm9ncmVzcy5zY3NzIiwKCQkiLi4vLi4vc3JjL3NoYXJlZC9jb21wb25lbnRzL3JhZGlhbFByb2dyZXNzL3JhZGlhbFByb2dyZXNzLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19zdXJ2ZXlIaXN0b3J5LnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL19zdXJ2ZXlzLnNjc3MiLAoJCSIuLi8uLi9zcmMvYmx1ZXByaW50cy9uZWN0YXJDYW52YXNzMi9zYXNzL2VsZW1lbnRzL193aWRnZXQuc2NzcyIsCgkJIi4uLy4uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9tb2RhbC9zY3NzL19fbW9kYWwuc2NzcyIsCgkJIi4uLy4uL3NyYy9ibHVlcHJpbnRzL25lY3RhckNhbnZhc3MyL3Nhc3MvbGF5b3V0cy9hdXRoL19oZWFkZXIuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIiRwdWJsaWNQYXRoOiBcIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3B1YmxpY1wiO1xuXG5AaW1wb3J0IFwiLi4vLi4vY29uZmlnXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvZm9vdGVyXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvaGVhZGVyXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvaGVyb1wiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL21vYmlsZUhlYWRlclwiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL3Byb21vUmV3YXJkc1wiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL3Byb21vRm9vdGVyXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvbm90aWZpY2F0aW9uLWJ1YmJsZVwiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL3NpdGVOb3RpZmljYXRpb25cIjtcblxuLy8gV2lkZ2V0c1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL2JhZGdlRGV0YWlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL2JhZGdlc1wiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL21pbmlQb2xsXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvb2ZmZXJzXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvcHJvZmlsZVByb2dyZXNzXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvcHJvZmlsZXJcIjtcbkBpbXBvcnQgXCIuLi8uLi9lbGVtZW50cy9yYWRpYWxQcm9ncmVzc1wiO1xuQGltcG9ydCBcIi4uLy4uL2VsZW1lbnRzL3N1cnZleUhpc3RvcnlcIjtcbkBpbXBvcnQgXCIuLi8uLi9lbGVtZW50cy9zdXJ2ZXlzXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxlbWVudHMvd2lkZ2V0XCI7XG5cbi8vU2hhcmVkIENvbXBvbmVudHNcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9tb2RhbC9zY3NzL19tb2RhbFwiO1xuQGltcG9ydCBcImhlYWRlclwiO1xuXG4uc2l0ZS1jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDgwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMTBweDtcbiAgPiAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZCAqIDI7XG4gIH1cbn1cblxuLmhlcm8ge1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldCkge1xuICAuc2l0ZS1jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgfVxuICAuaGVybyB7XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgfVxufVxuIiwKCQkiLy8gSW1wb3J0IFNoYXJlZCBDb25maWdcbkBpbXBvcnQgXCIuLi8uLi8uLi9zaGFyZWQvc2Fzcy9jb25maWdcIjtcblxuLy8gU2hhcmVkIENvbG9yc1xuJGNhbnZhc3MtZGVmYXVsdC10ZXh0OiAjNjY2ICFkZWZhdWx0O1xuJGNhbnZhc3MtZGFya2JsdWU6ICM3MDMyOTYgIWRlZmF1bHQ7XG4kY2FudmFzcy1kYXJrZ3JheTogIzdlN2U3ZiAhZGVmYXVsdDtcbiRjYW52YXNzLWdyYXk6ICM4MjgxODEgIWRlZmF1bHQ7XG4kY2FudmFzcy1wdXJwbGU6ICMwMDgyN2QgIWRlZmF1bHQ7XG4kY2FudmFzcy1ibHVlOiAkY2FudmFzcy1wdXJwbGU7XG4kY2FudmFzcy1saWdodEJsdWU6IGxpZ2h0ZW4oJGNhbnZhc3MtcHVycGxlLCAzMCkgIWRlZmF1bHQ7XG4kY2FudmFzcy1saWdodGVyZ3JheTogI2YzZjNmMyAhZGVmYXVsdDtcbiRjYW52YXNzLWxpZ2h0Z3JheTogI2VhZWFlYSAhZGVmYXVsdDtcbiRjYW52YXNzLWxpbWVncmVlbjogI2M4ZGEzZjtcbiRjYW52YXNzLW1lZGdyYXk6ICNkNGQ1ZDMgIWRlZmF1bHQ7XG4kY2FudmFzcy1zZWNvbmRhcnlCbHVlOiAjODc4NWRkICFkZWZhdWx0O1xuJGNhbnZhc3MtcmVkOiAjQzM0QzRDICFkZWZhdWx0O1xuJGNhbnZhc3MteWVsbG93OiAjRkRDRTVEICFkZWZhdWx0O1xuJGNhbnZhc3Mtb3JhbmdlOiAjZTg3NTZiICFkZWZhdWx0O1xuJGNhbnZhc3MtbGlnaHRPcmFuZ2U6ICNGQ0JCODE7XG5cbiRmYWNlYm9va1NvY2lhbC1iYWNrZ3JvdW5kOiAjM2I1OTk4O1xuJHN1cnZleVJlbmRlci1wcm9ncmVzcy1jb2xvcjogIzg3ODVkZDtcbiRzdXJ2ZXlSZW5kZXItcXVlc3Rpb25BbmRBbnN3ZXJXcmFwOiAjZWZlZmVmO1xuXG4vLyBFbWFpbCBTZXR0aW5nc1xuJGNhbnZhc3MtZW1haWwtYnV0dG9uLXRleHQ6ICMzMzMzMzM7XG5cbi8vIEJhc2UgU2V0dGluZ3NcbiRzdmctaWNvbi1jb2xzOiA2O1xuJHB1YmxpY1BhdGg6IFwiLi4vLi4vLi4vLi4vLi4vcHVibGljXCIgIWRlZmF1bHQ7XG4kY2FudmFzcy1jb250YWluZXI6IDEwMjRweDtcbiRjYW52YXNzLWZvb3RlckhlaWdodDogNzBweDtcbiRjYW52YXNzLWJhc2UtZm9udFNpemU6IDE1cHg7XG4kY2FudmFzcy1kZWZhdWx0LXRleHQ6ICMzMjMyMzI7XG4kY2FudmFzcy1iYWNrZ3JvdW5kOiAjRjhGOEY4O1xuJGNhbnZhc3MtZGVmYXVsdE1hcmtldGluZ0JhY2tncm91bmQ6ICM2MEEwOUM7XG4kY2FudmFzcy1saW5rOiAkY2FudmFzcy1ibHVlO1xuJGNhbnZhc3MtbGluay1hY3RpdmU6IGRhcmtlbigkY2FudmFzcy1saW5rLCAxNSUpICFkZWZhdWx0O1xuXG4vLyBDb21wb25lbnRzXG4kY2ctYnVzeS1iYWNrZ3JvdW5kOiAkY2FudmFzcy1kYXJrYmx1ZTtcbiRjZy1idXN5LWNvbG9yOiAjZmZmO1xuXG4vLyBSZXNwb25zaXZlIFZhcnNcbiRjYW52YXNzLXRocmVzaG9sZC1tb2JpbGU6IDYwMHB4O1xuJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldDogODMwcHg7XG5cbi8vIEZvbnQgQXdlc29tZVxuJGZhLWZvbnQtcGF0aDogXCIuLi8uLi8uLi8uLi9zaGFyZWQvdmVuZG9yL2ZvbnQtYXdlc29tZS9mb250c1wiO1xuXG4vLyBHbG9iYWwgU2V0dGluZ3NcbiRwYWQ6IDE2cHg7XG4kZm9udC1mYW1pbHktYmFzZTogJ1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1zaXplLWJhc2U6IDE1cHggIWRlZmF1bHQ7XG4kZm9udC1zaXplLXNtYWxsOiBjZWlsKCRmb250LXNpemUtYmFzZSAqIDAuODUpICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1sYXJnZTogY2VpbCgkZm9udC1zaXplLWJhc2UgKiAxLjI1KSAhZGVmYXVsdDtcbiRmb250LXNpemUtaDE6IDMwcHggIWRlZmF1bHQ7XG4kZm9udC1zaXplLWgyOiAyNXB4ICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1oMzogMjBweCAhZGVmYXVsdDtcbiRmb250LXNpemUtaDQ6IGNlaWwoJGZvbnQtc2l6ZS1iYXNlICogMS4yNSkgIWRlZmF1bHQ7XG4kZm9udC1zaXplLWg1OiAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kZm9udC1zaXplLWg2OiBjZWlsKCRmb250LXNpemUtYmFzZSAqIDAuODUpICFkZWZhdWx0O1xuXG4vLyBPdGhlciBDb25maWdzXG5AaW1wb3J0IFwiY29uZmlnLWJvb3RzdHJhcFwiO1xuXG4vLyBQbGFjZWhvbGRlcnNcbkBpbXBvcnQgXCJwbGFjZWhvbGRlcnMvYm94XCI7XG5AaW1wb3J0IFwicGxhY2Vob2xkZXJzL2NvbnRhaW5lclwiO1xuQGltcG9ydCBcInBsYWNlaG9sZGVycy9oZXJvQW5kV2lkZ2V0c1wiOyIsCgkJIi8vIFJlc2VhcmNoTm93IENvbG9yc1xuJHJuLWRhcmtibHVlOiAjNmI2OWI3O1xuJHJuLWRhcmtncmF5OiAjN2U3ZTdmO1xuJHJuLWdyZWVuOiAjNWFiNDE0O1xuJHJuLWxpZ2h0Ymx1ZTogIzJjYjliYTtcbiRybi1saWdodGVyZ3JheTogI2YzZjNmMztcbiRybi1saWdodGdyYXk6ICNlYWVhZWE7XG4kcm4tbGltZWdyZWVuOiAjYzhkYTNmO1xuJHJuLW1lZGdyYXk6ICNkNGQ1ZDM7XG4kcm4tc2Vjb25kYXJ5Qmx1ZTogIzg3ODVkZDtcbiRybi1yZWQ6ICNENjM4MDI7XG4kcm4teWVsbG93OiAjZmZjYzAyO1xuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gSW1wb3J0IFNoYXJlZCBNaXhpbnNcbkBpbXBvcnQgXCJtaXhpbnMvaGVscGVyc1wiO1xuQGltcG9ydCBcIm1peGlucy90cmFuc2l0aW9uc1wiO1xuQGltcG9ydCBcIm1peGlucy9lbWFpbFJlc2V0XCI7XG5AaW1wb3J0IFwibWl4aW5zL2JvdXJib25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvaWNvblwiO1xuXG4vLyBJbXBvcnQgU2hhcmVkIFBsYWNlaG9sZGVyc1xuQGltcG9ydCBcInBsYWNlaG9sZGVycy9wb2ludGVyXCI7XG5AaW1wb3J0IFwicGxhY2Vob2xkZXJzL3ZlcnRpY2FsbHlDZW50ZXJcIjsiLAoJCSIkc3ZnLWljb24tY29sczogNSAhZGVmYXVsdDsgLy8gSG93IG1hbnkgY29sdW1ucyBhcmUgaW4gdGhlIHNwcml0ZSBzaGVldFxuXG5AbWl4aW4gaGVscGVycy1vcGFjaXR5KCR2YWx1ZSkge1xuICAkSUVWYWx1ZTogJHZhbHVlKjEwMDtcbiAgb3BhY2l0eTogJHZhbHVlO1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PVwiKyRJRVZhbHVlK1wiKVwiO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9JElFVmFsdWUpO1xufVxuXG5AbWl4aW4gaGVscGVycy1zdGFja0ZsZXgge1xuICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG59XG5cbkBtaXhpbiBoZWxwZXJzLXN0YWNrRmxleE9yZGVyKCRvcmRlcikge1xuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAkb3JkZXI7XG4gIC13ZWJraXQtb3JkZXI6ICRvcmRlcjtcbiAgb3JkZXI6ICRvcmRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtaXhpbiBoZWxwZXJzLWNsZWFyIHtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFwwMDIwXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1peGluIGhlbHBlcnMtdmVydGljYWwtYWxpZ24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5AbWl4aW4gaGVscGVycy1ib3JkZXItcmFkaXVzKCRyYWRpdXMpIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAgLyogc3RvcHMgYmcgY29sb3IgZnJvbSBsZWFraW5nIG91dHNpZGUgdGhlIGJvcmRlcjogKi9cbn1cblxuQG1peGluIGhlbHBlcnMtdHJhbnNwYXJlbnRDbGlja2FibGUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIjeyRwdWJsaWNQYXRofS9zaGFyZWQvaW1hZ2VzL3RyYW5zcGFyZW50LnBuZ1wiKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgY3Vyc29yOiBoYW5kO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbkBtaXhpbiBoZWxwZXJzLWFycm93KCRjb2xvcjogd2hpdGUsICRib3JkZXJDb2xvcjogI2NjYywgJHNpemU6IDdweCwgJHRvcDogLTdweCwgJGxlZnQ6IGF1dG8sICRyaWdodDogN3B4LCAkYm90dG9tOiBhdXRvKSB7XG4gICY6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkdG9wO1xuICAgIGxlZnQ6ICRsZWZ0O1xuICAgIHJpZ2h0OiAkcmlnaHQ7XG4gICAgYm90dG9tOiAkYm90dG9tO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkICRib3JkZXJDb2xvcjtcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNpemUgc29saWQgJGJvcmRlckNvbG9yO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHRvcCArIDFweDtcbiAgICBsZWZ0OiAkbGVmdCArIDFweDtcbiAgICByaWdodDogJHJpZ2h0ICsgMXB4O1xuICAgIGJvdHRvbTogJGJvdHRvbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSAtIDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSAtIDFweCBzb2xpZCAkY29sb3I7XG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIC0gMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cblxuQG1peGluIHJlc3BvbmQtYXQoJG1pbjogZmFsc2UsICRtYXg6IGZhbHNlKSB7XG4gIEBpZiAkbWluID09IGZhbHNlIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWF4ID09IGZhbHNlIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLAoJCSIkcHJlZml4LWN1cnJlbnQ6IFwiXCI7XG5cbi8qIEV4cGVyaW1lbnRhbCBNaXhpbiBTdXBwb3J0ICovXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCA6IHRydWU7XG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGE6IHRydWU7XG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhOiB0cnVlO1xuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQ6IHRydWU7XG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sOiBmYWxzZTtcbkBtaXhpbiBleHBlcmltZW50YWwoJHByb3BlcnR5LCAkdmFsdWUsICRtb3o6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSwgJHdlYmtpdDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsICRvOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLCAkbXM6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LCAka2h0bWw6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwsICRvZmZpY2lhbDogdHJ1ZSkge1xuICBAaWYgJHdlYmtpdCBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQge1xuICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gIH1cbiAgQGlmICRraHRtbCBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCB7XG4gICAgLWtodG1sLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICB9XG4gIEBpZiAkbW96IGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEge1xuICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gIH1cbiAgQGlmICRtcyBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQge1xuICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgfVxuICBAaWYgJG8gYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEge1xuICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICB9XG4gIEBpZiAkb2ZmaWNpYWwge1xuICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICB9XG59XG5cbkBtaXhpbiBhbmltYXRlLXByZWZpeCgkcDEsICRwMikge1xuICAkcDE6ICN7JHByZWZpeC1jdXJyZW50fSN7JHAxfTtcbiAgI3skcDF9OiAjeyRwMn07XG59XG5cbkBtaXhpbiBhbmltYXRlKCRuYW1lOiBmYWRlSW4sICRkdXJhdGlvbjogMXMsICRkZWxheTogMHMsICRmdW5jdGlvbjogZWFzZSwgJG1vZGU6IGJvdGgpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGFuaW1hdGlvbiwgdW5xdW90ZSgkbmFtZSkgJGR1cmF0aW9uICRkZWxheSAkZnVuY3Rpb24gJG1vZGUpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRuYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgJHByZWZpeC1jdXJyZW50OiBcIi13ZWJraXQtXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICRwcmVmaXgtY3VycmVudDogXCItbW96LVwiO1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgQC1vLWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgJHByZWZpeC1jdXJyZW50OiBcIi1vLVwiO1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgJHByZWZpeC1jdXJyZW50OiBcIlwiO1xuICAgIEBjb250ZW50O1xuICB9XG59IiwKCQkiQG1peGluIGVtYWlsUmVzZXQge1xuXG4gIGh0bWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgfVxuXG4gIGltZyB7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gIH1cblxuICAuaW1hZ2VGaXgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGFibGUsIHRkIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB9XG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbXNvLXRhYmxlLWxzcGFjZTogMHB0O1xuICAgIG1zby10YWJsZS1yc3BhY2U6IDBwdDtcbiAgfVxuXG4gIHRhYmxlIHRkIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB9XG5cbn0iLAoJCSIvLyA9PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJvdXJib24gSW1wb3J0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFNldHRpbmdzXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uXCI7IiwKCQkiLy8gQm91cmJvbiA0LjIuN1xuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwKCQkiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsCgkJIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xufVxuIiwKCQkiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsCgkJIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsCgkJIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLAoJCSIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLAoJCSIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cbiIsCgkJIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsCgkJIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLAoJCSIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsCgkJIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLAoJCSJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLAoJCSIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLAoJCSJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsCgkJIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwKCQkiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwKCQkiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwKCQkiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLAoJCSIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsCgkJIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLAoJCSJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLAoJCSJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwKCQkiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsCgkJIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsCgkJIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLAoJCSJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsCgkJIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsCgkJIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwKCQkiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxufVxuIiwKCQkiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLAoJCSIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsCgkJIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLAoJCSJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLAoJCSIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwKCQkiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLAoJCSJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsCgkJIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwKCQkiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsCgkJIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwKCQkiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwKCQkiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsCgkJIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwKCQkiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwKCQkiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwKCQkiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwKCQkiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwKCQkiQG1peGluIGljb24oJHNpemUpIHtcbiAgaGVpZ2h0OiAkc2l6ZTtcbiAgd2lkdGg6ICRzaXplO1xufSIsCgkJIiVwb2ludGVyIHtcbiAgY3Vyc29yOiBoYW5kO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59IiwKCQkiQG1peGluIHZlcnRpY2FsbHlDZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdG9wOiA1MCU7XG59XG5cbkBtaXhpbiByZW1vdmVWZXJ0aWNhbGx5Q2VudGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cblxuJXZlcnRpY2FsbHlDZW50ZXIge1xuICBAaW5jbHVkZSB2ZXJ0aWNhbGx5Q2VudGVyO1xufVxuXG4lcmVtb3ZlVmVydGljYWxseUNlbnRlciB7XG4gIEBpbmNsdWRlIHJlbW92ZVZlcnRpY2FsbHlDZW50ZXI7XG59IiwKCQkiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBCb290c3RyYXAgdmFyaWFibGVzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gYSBmbGFnIHRvIHRvZ2dsZSBhc3NldCBwaXBlbGluZSAvIGNvbXBhc3MgaW50ZWdyYXRpb25cbi8vIGRlZmF1bHRzIHRvIHRydWUgaWYgdHdicy1mb250LXBhdGggZnVuY3Rpb24gaXMgcHJlc2VudCAobm8gZnVuY3Rpb24gPT4gdHdicy1mb250LXBhdGgoJycpIHBhcnNlZCBhcyBzdHJpbmcgPT0gcmlnaHQgc2lkZSlcbi8vIGluIFNhc3MgMy4zIHRoaXMgY2FuIGJlIGltcHJvdmVkIHdpdGg6IGZ1bmN0aW9uLWV4aXN0cyh0d2JzLWZvbnQtcGF0aClcbiRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXI6IHR3YnMtZm9udC1wYXRoKFwiXCIpICE9IHVucXVvdGUoJ3R3YnMtZm9udC1wYXRoKFwiXCIpJykgIWRlZmF1bHQ7XG5cbi8vPT0gQ29sb3JzXG4kdGV4dC1jb2xvcjogJGNhbnZhc3MtZGVmYXVsdC10ZXh0ICFkZWZhdWx0O1xuXG4kYnJhbmQtZGFuZ2VyOiAkY2FudmFzcy1yZWQ7XG4kYnJhbmQtcHJpbWFyeTogJGNhbnZhc3MtcHVycGxlICFkZWZhdWx0O1xuJGJyYW5kLXN1Y2Nlc3M6ICRjYW52YXNzLXB1cnBsZSAhZGVmYXVsdDtcbiRicmFuZC1pbmZvOiAkY2FudmFzcy1saWdodEJsdWUgIWRlZmF1bHQ7XG4kYnJhbmQtd2FybmluZzogJGNhbnZhc3MteWVsbG93ICFkZWZhdWx0O1xuJGJyYW5kLWRhbmdlcjogJGNhbnZhc3MteWVsbG93ICFkZWZhdWx0O1xuXG4kZ3JheS1kYXJrZXI6IGxpZ2h0ZW4oYmxhY2ssIDEzLjUlKSAhZGVmYXVsdDtcbiRncmF5LWRhcms6IGxpZ2h0ZW4oYmxhY2ssIDIwJSkgIWRlZmF1bHQ7XG4kZ3JheTogbGlnaHRlbihibGFjaywgMzMuNSUpICFkZWZhdWx0O1xuJGdyYXktbGlnaHQ6IGxpZ2h0ZW4oYmxhY2ssIDQ2LjclKSAhZGVmYXVsdDtcbiRncmF5LWxpZ2h0MjogbGlnaHRlbihibGFjaywgNjYlKSAhZGVmYXVsdDtcbiRncmF5LWxpZ2h0ZXI6IGxpZ2h0ZW4oYmxhY2ssIDkzLjUlKSAhZGVmYXVsdDtcblxuLy89PSBTY2FmZm9sZGluZ1xuXG4vLz09IFR5cG9ncmFwaHlcbi8vXG4vLyMjIEZvbnQsIGxpbmUtaGVpZ2h0LCBhbmQgY29sb3IgZm9yIGJvZHkgdGV4dCwgaGVhZGluZ3MsIGFuZCBtb3JlLlxuXG4vLyogRGVmYXVsdCBtb25vc3BhY2UgZm9udHMgZm9yIGA8Y29kZT5gLCBgPGtiZD5gLCBhbmQgYDxwcmU+YC5cbiRmb250LWZhbWlseS1tb25vc3BhY2U6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8qIFVuaXQtbGVzcyBgbGluZS1oZWlnaHRgIGZvciB1c2UgaW4gY29tcG9uZW50cyBsaWtlIGJ1dHRvbnMuXG4kbGluZS1oZWlnaHQtYmFzZTogMS40Mjg1NyAhZGVmYXVsdDtcblxuLy8gMjAvMTRcbi8vKiBDb21wdXRlZCBcImxpbmUtaGVpZ2h0XCIgKGBmb250LXNpemVgICogYGxpbmUtaGVpZ2h0YCkgZm9yIHVzZSB3aXRoIGBtYXJnaW5gLCBgcGFkZGluZ2AsIGV0Yy5cbiRsaW5lLWhlaWdodC1jb21wdXRlZDogZmxvb3IoJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2UpICFkZWZhdWx0O1xuXG4vLyB+MjBweFxuXG4vLyogQnkgZGVmYXVsdCwgdGhpcyBpbmhlcml0cyBmcm9tIHRoZSBgPGJvZHk+YC5cbiRoZWFkaW5ncy1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogNTAwICFkZWZhdWx0O1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAxLjEgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vPT0gSWNvbm9ncmFwaHlcbi8vXG4vLyMjIFNwZWNpZnkgY3VzdG9tIGxvY2F0aW9uIGFuZCBmaWxlbmFtZSBvZiB0aGUgaW5jbHVkZWQgR2x5cGhpY29ucyBpY29uIGZvbnQuIFVzZWZ1bCBmb3IgdGhvc2UgaW5jbHVkaW5nIEJvb3RzdHJhcCB2aWEgQm93ZXIuXG5cbi8vKiBMb2FkIGZvbnRzIGZyb20gdGhpcyBkaXJlY3RvcnkuXG4kaWNvbi1mb250LXBhdGg6IFwiYm9vdHN0cmFwL1wiICFkZWZhdWx0O1xuXG4vLyogRmlsZSBuYW1lIGZvciBhbGwgZm9udCBmaWxlcy5cbiRpY29uLWZvbnQtbmFtZTogXCJnbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyXCIgIWRlZmF1bHQ7XG5cbi8vKiBFbGVtZW50IElEIHdpdGhpbiBTVkcgaWNvbiBmaWxlLlxuJGljb24tZm9udC1zdmctaWQ6IFwiZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyXCIgIWRlZmF1bHQ7XG5cbi8vPT0gQ29tcG9uZW50c1xuLy9cbi8vIyMgRGVmaW5lIGNvbW1vbiBwYWRkaW5nIGFuZCBib3JkZXIgcmFkaXVzIHNpemVzIGFuZCBtb3JlLiBWYWx1ZXMgYmFzZWQgb24gMTRweCB0ZXh0IGFuZCAxLjQyOCBsaW5lLWhlaWdodCAofjIwcHggdG8gc3RhcnQpLlxuXG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHggIWRlZmF1bHQ7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6IDEycHggIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4ICFkZWZhdWx0O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogMTZweCAhZGVmYXVsdDtcblxuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweCAhZGVmYXVsdDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHggIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLXhzLXZlcnRpY2FsOiAxcHggIWRlZmF1bHQ7XG4kcGFkZGluZy14cy1ob3Jpem9udGFsOiA1cHggIWRlZmF1bHQ7XG5cbiRsaW5lLWhlaWdodC1sYXJnZTogMS4zMyAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1zbWFsbDogMS41ICFkZWZhdWx0O1xuXG4kYm9yZGVyLXJhZGl1cy1iYXNlOiAycHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNHB4ICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc21hbGw6IDFweCAhZGVmYXVsdDtcblxuLy8qIEdsb2JhbCBjb2xvciBmb3IgYWN0aXZlIGl0ZW1zIChlLmcuLCBuYXZzIG9yIGRyb3Bkb3ducykuXG4kY29tcG9uZW50LWFjdGl2ZS1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vKiBHbG9iYWwgYmFja2dyb3VuZCBjb2xvciBmb3IgYWN0aXZlIGl0ZW1zIChlLmcuLCBuYXZzIG9yIGRyb3Bkb3ducykuXG4kY29tcG9uZW50LWFjdGl2ZS1iZzogJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vKiBXaWR0aCBvZiB0aGUgYGJvcmRlcmAgZm9yIGdlbmVyYXRpbmcgY2FyZXRzIHRoYXQgaW5kaWNhdG9yIGRyb3Bkb3ducy5cbiRjYXJldC13aWR0aC1iYXNlOiA0cHggIWRlZmF1bHQ7XG5cbi8vKiBDYXJldHMgaW5jcmVhc2Ugc2xpZ2h0bHkgaW4gc2l6ZSBmb3IgbGFyZ2VyIGNvbXBvbmVudHMuXG4kY2FyZXQtd2lkdGgtbGFyZ2U6IDVweCAhZGVmYXVsdDtcblxuLy89PSBUYWJsZXNcbi8vXG4vLyMjIEN1c3RvbWl6ZXMgdGhlIGAudGFibGVgIGNvbXBvbmVudCB3aXRoIGJhc2ljIHZhbHVlcywgZWFjaCB1c2VkIGFjcm9zcyBhbGwgdGFibGUgdmFyaWF0aW9ucy5cblxuLy8qIFBhZGRpbmcgZm9yIGA8dGg+YHMgYW5kIGA8dGQ+YHMuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG5cbi8vKiBQYWRkaW5nIGZvciBjZWxscyBpbiBgLnRhYmxlLWNvbmRlbnNlZGAuXG4kdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZzogNXB4ICFkZWZhdWx0O1xuXG4vLyogRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHVzZWQgZm9yIGFsbCB0YWJsZXMuXG4kdGFibGUtYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyogQmFja2dyb3VuZCBjb2xvciB1c2VkIGZvciBgLnRhYmxlLXN0cmlwZWRgLlxuJHRhYmxlLWJnLWFjY2VudDogI2Y5ZjlmOSAhZGVmYXVsdDtcblxuLy8qIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYC50YWJsZS1ob3ZlcmAuXG4kdGFibGUtYmctaG92ZXI6IHdoaXRlc21va2UgIWRlZmF1bHQ7XG4kdGFibGUtYmctYWN0aXZlOiAkdGFibGUtYmctaG92ZXIgIWRlZmF1bHQ7XG5cbi8vKiBCb3JkZXIgY29sb3IgZm9yIHRhYmxlIGFuZCBjZWxsIGJvcmRlcnMuXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAjZGRkZGRkICFkZWZhdWx0O1xuXG4vLz09IEJ1dHRvbnNcbi8vXG4vLyMjIEZvciBlYWNoIG9mIEJvb3RzdHJhcCdzIGJ1dHRvbnMsIGRlZmluZSB0ZXh0LCBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgY29sb3IuXG5cbiRidG4tZm9udC13ZWlnaHQ6IG5vcm1hbCAhZGVmYXVsdDtcblxuJGJ0bi1kZWZhdWx0LWNvbG9yOiAjMzMzMzMzICFkZWZhdWx0O1xuJGJ0bi1kZWZhdWx0LWJnOiB3aGl0ZSAhZGVmYXVsdDtcbiRidG4tZGVmYXVsdC1ib3JkZXI6ICNjY2NjY2MgIWRlZmF1bHQ7XG5cbiRidG4tcHJpbWFyeS1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kYnRuLXByaW1hcnktYmc6ICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuJGJ0bi1wcmltYXJ5LWJvcmRlcjogZGFya2VuKCRidG4tcHJpbWFyeS1iZywgNSUpICFkZWZhdWx0O1xuXG4kYnRuLXN1Y2Nlc3MtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJGJ0bi1zdWNjZXNzLWJnOiAkYnJhbmQtc3VjY2VzcyAhZGVmYXVsdDtcbiRidG4tc3VjY2Vzcy1ib3JkZXI6IGRhcmtlbigkYnRuLXN1Y2Nlc3MtYmcsIDUlKSAhZGVmYXVsdDtcblxuJGJ0bi1pbmZvLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRidG4taW5mby1iZzogJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG4kYnRuLWluZm8tYm9yZGVyOiBkYXJrZW4oJGJ0bi1pbmZvLWJnLCA1JSkgIWRlZmF1bHQ7XG5cbiRidG4td2FybmluZy1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kYnRuLXdhcm5pbmctYmc6ICRicmFuZC13YXJuaW5nICFkZWZhdWx0O1xuJGJ0bi13YXJuaW5nLWJvcmRlcjogZGFya2VuKCRidG4td2FybmluZy1iZywgNSUpICFkZWZhdWx0O1xuXG4kYnRuLWRhbmdlci1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kYnRuLWRhbmdlci1iZzogJGJyYW5kLWRhbmdlciAhZGVmYXVsdDtcbiRidG4tZGFuZ2VyLWJvcmRlcjogZGFya2VuKCRidG4tZGFuZ2VyLWJnLCA1JSkgIWRlZmF1bHQ7XG5cbiRidG4tbGluay1kaXNhYmxlZC1jb2xvcjogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vPT0gRm9ybXNcbi8vXG4vLyMjXG5cbi8vKiBgPGlucHV0PmAgYmFja2dyb3VuZCBjb2xvclxuJGlucHV0LWJnOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8qIGA8aW5wdXQgZGlzYWJsZWQ+YCBiYWNrZ3JvdW5kIGNvbG9yXG4kaW5wdXQtYmctZGlzYWJsZWQ6ICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbi8vKiBUZXh0IGNvbG9yIGZvciBgPGlucHV0PmBzXG4kaW5wdXQtY29sb3I6ICRncmF5ICFkZWZhdWx0O1xuXG4vLyogYDxpbnB1dD5gIGJvcmRlciBjb2xvclxuJGlucHV0LWJvcmRlcjogI2NjY2NjYyAhZGVmYXVsdDtcblxuLy8qIGA8aW5wdXQ+YCBib3JkZXIgcmFkaXVzXG4kaW5wdXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qIEJvcmRlciBjb2xvciBmb3IgaW5wdXRzIG9uIGZvY3VzXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAjNjZhZmU5ICFkZWZhdWx0O1xuXG4vLyogUGxhY2Vob2xkZXIgdGV4dCBjb2xvclxuJGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIERlZmF1bHQgYC5mb3JtLWNvbnRyb2xgIGhlaWdodFxuJGlucHV0LWhlaWdodC1iYXNlOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQgKyAkcGFkZGluZy1iYXNlLXZlcnRpY2FsICogMiArIDIgIWRlZmF1bHQ7XG5cbi8vKiBMYXJnZSBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LWxhcmdlOiBjZWlsKCRmb250LXNpemUtbGFyZ2UgKiAkbGluZS1oZWlnaHQtbGFyZ2UpICsgJHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKiAyICsgMiAhZGVmYXVsdDtcblxuLy8qIFNtYWxsIGAuZm9ybS1jb250cm9sYCBoZWlnaHRcbiRpbnB1dC1oZWlnaHQtc21hbGw6IGZsb29yKCRmb250LXNpemUtc21hbGwgKiAkbGluZS1oZWlnaHQtc21hbGwpICsgJHBhZGRpbmctc21hbGwtdmVydGljYWwgKiAyICsgMiAhZGVmYXVsdDtcblxuJGxlZ2VuZC1jb2xvcjogJGdyYXktZGFyayAhZGVmYXVsdDtcbiRsZWdlbmQtYm9yZGVyLWNvbG9yOiAjZTVlNWU1ICFkZWZhdWx0O1xuXG4vLyogQmFja2dyb3VuZCBjb2xvciBmb3IgdGV4dHVhbCBpbnB1dCBhZGRvbnNcbiRpbnB1dC1ncm91cC1hZGRvbi1iZzogJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcblxuLy8qIEJvcmRlciBjb2xvciBmb3IgdGV4dHVhbCBpbnB1dCBhZGRvbnNcbiRpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXIgIWRlZmF1bHQ7XG5cbi8vPT0gRHJvcGRvd25zXG4vL1xuLy8jIyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbi8vKiBCYWNrZ3JvdW5kIGZvciB0aGUgZHJvcGRvd24gbWVudS5cbiRkcm9wZG93bi1iZzogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vKiBEcm9wZG93biBtZW51IGBib3JkZXItY29sb3JgLlxuJGRyb3Bkb3duLWJvcmRlcjogcmdiYSgwLCAwLCAwLCAwLjE1KSAhZGVmYXVsdDtcblxuLy8qIERyb3Bkb3duIG1lbnUgYGJvcmRlci1jb2xvcmAgKipmb3IgSUU4KiouXG4kZHJvcGRvd24tZmFsbGJhY2stYm9yZGVyOiAjY2NjY2NjICFkZWZhdWx0O1xuXG4vLyogRGl2aWRlciBjb2xvciBmb3IgYmV0d2VlbiBkcm9wZG93biBpdGVtcy5cbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAjZTVlNWU1ICFkZWZhdWx0O1xuXG4vLyogRHJvcGRvd24gbGluayB0ZXh0IGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstY29sb3I6ICRncmF5LWRhcmsgIWRlZmF1bHQ7XG5cbi8vKiBIb3ZlciBjb2xvciBmb3IgZHJvcGRvd24gbGlua3MuXG4kZHJvcGRvd24tdm9wNC1saW5rLWFjdGl2ZTogZGFya2VuKCRncmF5LWRhcmssIDUlKSAhZGVmYXVsdDtcblxuLy8qIEhvdmVyIGJhY2tncm91bmQgZm9yIGRyb3Bkb3duIGxpbmtzLlxuJGRyb3Bkb3duLWxpbmstaG92ZXItYmc6IHdoaXRlc21va2UgIWRlZmF1bHQ7XG5cbi8vKiBBY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtIHRleHQgY29sb3IuXG4kZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I6ICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuXG4vLyogQWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbSBiYWNrZ3JvdW5kIGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWJnOiAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuLy8qIERpc2FibGVkIGRyb3Bkb3duIG1lbnUgaXRlbSBiYWNrZ3JvdW5kIGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyogVGV4dCBjb2xvciBmb3IgaGVhZGVycyB3aXRoaW4gZHJvcGRvd24gbWVudXMuXG4kZHJvcGRvd24taGVhZGVyLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIERlcHJlY2F0ZWQgYCRkcm9wZG93bi1jYXJldC1jb2xvcmAgYXMgb2YgdjMuMS4wXG4kZHJvcGRvd24tY2FyZXQtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuXG4vLy0tIFotaW5kZXggbWFzdGVyIGxpc3Rcbi8vXG4vLyBXYXJuaW5nOiBBdm9pZCBjdXN0b21pemluZyB0aGVzZSB2YWx1ZXMuIFRoZXkncmUgdXNlZCBmb3IgYSBiaXJkJ3MgZXllIHZpZXdcbi8vIG9mIGNvbXBvbmVudHMgZGVwZW5kZW50IG9uIHRoZSB6LWF4aXMgYW5kIGFyZSBkZXNpZ25lZCB0byBhbGwgd29yayB0b2dldGhlci5cbi8vXG4vLyBOb3RlOiBUaGVzZSB2YXJpYWJsZXMgYXJlIG5vdCBnZW5lcmF0ZWQgaW50byB0aGUgQ3VzdG9taXplci5cblxuJHppbmRleC1uYXZiYXI6IDEwMDAgIWRlZmF1bHQ7XG4kemluZGV4LWRyb3Bkb3duOiAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1wb3BvdmVyOiAxMDYwICFkZWZhdWx0O1xuJHppbmRleC10b29sdGlwOiAxMDcwICFkZWZhdWx0O1xuJHppbmRleC1uYXZiYXItZml4ZWQ6IDEwMzAgIWRlZmF1bHQ7XG4kemluZGV4LW1vZGFsLWJhY2tncm91bmQ6IDEwNDAgIWRlZmF1bHQ7XG4kemluZGV4LW1vZGFsOiAxMDUwICFkZWZhdWx0O1xuXG4vLz09IE1lZGlhIHF1ZXJpZXMgYnJlYWtwb2ludHNcbi8vXG4vLyMjIERlZmluZSB0aGUgYnJlYWtwb2ludHMgYXQgd2hpY2ggeW91ciBsYXlvdXQgd2lsbCBjaGFuZ2UsIGFkYXB0aW5nIHRvIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbi8vIEV4dHJhIHNtYWxsIHNjcmVlbiAvIHBob25lXG4vLyogRGVwcmVjYXRlZCBgJHNjcmVlbi14c2AgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXhzOiA0ODBweCAhZGVmYXVsdDtcblxuLy8qIERlcHJlY2F0ZWQgYCRzY3JlZW4teHMtbWluYCBhcyBvZiB2My4yLjBcbiRzY3JlZW4teHMtbWluOiAkc2NyZWVuLXhzICFkZWZhdWx0O1xuXG4vLyogRGVwcmVjYXRlZCBgJHNjcmVlbi1waG9uZWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXBob25lOiAkc2NyZWVuLXhzLW1pbiAhZGVmYXVsdDtcblxuLy8gU21hbGwgc2NyZWVuIC8gdGFibGV0XG4vLyogRGVwcmVjYXRlZCBgJHNjcmVlbi1zbWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXNtOiA3NjhweCAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWluOiAkc2NyZWVuLXNtICFkZWZhdWx0O1xuXG4vLyogRGVwcmVjYXRlZCBgJHNjcmVlbi10YWJsZXRgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi10YWJsZXQ6ICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuLy8qIERlcHJlY2F0ZWQgYCRzY3JlZW4tbWRgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi1tZDogOTkycHggIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1pbjogJHNjcmVlbi1tZCAhZGVmYXVsdDtcblxuLy8qIERlcHJlY2F0ZWQgYCRzY3JlZW4tZGVza3RvcGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWRlc2t0b3A6ICRzY3JlZW4tbWQtbWluICFkZWZhdWx0O1xuXG4vLyBMYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3Bcbi8vKiBEZXByZWNhdGVkIGAkc2NyZWVuLWxnYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGc6IDEyMDBweCAhZGVmYXVsdDtcbiRzY3JlZW4tbGctbWluOiAkc2NyZWVuLWxnICFkZWZhdWx0O1xuXG4vLyogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZy1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGctZGVza3RvcDogJHNjcmVlbi1sZy1taW4gIWRlZmF1bHQ7XG5cbi8vIFNvIG1lZGlhIHF1ZXJpZXMgZG9uJ3Qgb3ZlcmxhcCB3aGVuIHJlcXVpcmVkLCBwcm92aWRlIGEgbWF4aW11bVxuJHNjcmVlbi14cy1tYXg6ICRzY3JlZW4tc20tbWluIC0gMSAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWF4OiAkc2NyZWVuLW1kLW1pbiAtIDEgIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1heDogJHNjcmVlbi1sZy1taW4gLSAxICFkZWZhdWx0O1xuXG4vLz09IEdyaWQgc3lzdGVtXG4vL1xuLy8jIyBEZWZpbmUgeW91ciBjdXN0b20gcmVzcG9uc2l2ZSBncmlkLlxuXG4vLyogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLy8qIFBhZGRpbmcgYmV0d2VlbiBjb2x1bW5zLiBHZXRzIGRpdmlkZWQgaW4gaGFsZiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0LlxuJGdyaWQtZ3V0dGVyLXdpZHRoOiAzMHB4ICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgY29sbGFwc2Vcbi8vKiBQb2ludCBhdCB3aGljaCB0aGUgbmF2YmFyIGJlY29tZXMgdW5jb2xsYXBzZWQuXG4kZ3JpZC1mbG9hdC1icmVha3BvaW50OiAkc2NyZWVuLXNtLW1pbiAhZGVmYXVsdDtcblxuLy8qIFBvaW50IGF0IHdoaWNoIHRoZSBuYXZiYXIgYmVnaW5zIGNvbGxhcHNpbmcuXG4kZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCAtIDEgIWRlZmF1bHQ7XG5cbi8vPT0gQ29udGFpbmVyIHNpemVzXG4vL1xuLy8jIyBEZWZpbmUgdGhlIG1heGltdW0gd2lkdGggb2YgYC5jb250YWluZXJgIGZvciBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLlxuXG4vLyBTbWFsbCBzY3JlZW4gLyB0YWJsZXRcbiRjb250YWluZXItdGFibGV0OiA3MjBweCArICRncmlkLWd1dHRlci13aWR0aCAhZGVmYXVsdDtcblxuLy8qIEZvciBgJHNjcmVlbi1zbS1taW5gIGFuZCB1cC5cbiRjb250YWluZXItc206ICRjb250YWluZXItdGFibGV0ICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuJGNvbnRhaW5lci1kZXNrdG9wOiA5NDBweCArICRncmlkLWd1dHRlci13aWR0aCAhZGVmYXVsdDtcblxuLy8qIEZvciBgJHNjcmVlbi1tZC1taW5gIGFuZCB1cC5cbiRjb250YWluZXItbWQ6ICRjb250YWluZXItZGVza3RvcCAhZGVmYXVsdDtcblxuLy8gTGFyZ2Ugc2NyZWVuIC8gd2lkZSBkZXNrdG9wXG4kY29udGFpbmVyLWxhcmdlLWRlc2t0b3A6IDExNDBweCArICRncmlkLWd1dHRlci13aWR0aCAhZGVmYXVsdDtcblxuLy8qIEZvciBgJHNjcmVlbi1sZy1taW5gIGFuZCB1cC5cbiRjb250YWluZXItbGc6ICRjb250YWluZXItbGFyZ2UtZGVza3RvcCAhZGVmYXVsdDtcblxuLy89PSBOYXZiYXJcbi8vXG4vLyMjXG5cbi8vIEJhc2ljcyBvZiBhIG5hdmJhclxuJG5hdmJhci1oZWlnaHQ6IDUwcHggIWRlZmF1bHQ7XG4kbmF2YmFyLW1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZCAhZGVmYXVsdDtcbiRuYXZiYXItYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsOiBmbG9vcigkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDogKCRuYXZiYXItaGVpZ2h0IC0gJGxpbmUtaGVpZ2h0LWNvbXB1dGVkKSAvIDIgIWRlZmF1bHQ7XG4kbmF2YmFyLWNvbGxhcHNlLW1heC1oZWlnaHQ6IDM0MHB4ICFkZWZhdWx0O1xuXG4kbmF2YmFyLWRlZmF1bHQtY29sb3I6ICM3Nzc3NzcgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYmc6ICNmOGY4ZjggIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYm9yZGVyOiBkYXJrZW4oJG5hdmJhci1kZWZhdWx0LWJnLCA2LjUlKSAhZGVmYXVsdDtcblxuLy8gTmF2YmFyIGxpbmtzXG4kbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjogIzc3Nzc3NyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC12b3A0LWxpbmstYWN0aXZlOiAjMzMzMzMzICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yOiAjNTU1NTU1ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnOiBkYXJrZW4oJG5hdmJhci1kZWZhdWx0LWJnLCA2LjUlKSAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yOiAjY2NjY2NjICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgYnJhbmQgbGFiZWxcbiRuYXZiYXItZGVmYXVsdC1icmFuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItY29sb3I6IGRhcmtlbigkbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgdG9nZ2xlXG4kbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWhvdmVyLWJnOiAjZGRkZGRkICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1pY29uLWJhci1iZzogIzg4ODg4OCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC10b2dnbGUtYm9yZGVyLWNvbG9yOiAjZGRkZGRkICFkZWZhdWx0O1xuXG4vLyBJbnZlcnRlZCBuYXZiYXJcbi8vIFJlc2V0IGludmVydGVkIG5hdmJhciBiYXNpY3NcbiRuYXZiYXItaW52ZXJzZS1jb2xvcjogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYmc6ICMyMjIyMjIgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYm9yZGVyOiBkYXJrZW4oJG5hdmJhci1pbnZlcnNlLWJnLCAxMCUpICFkZWZhdWx0O1xuXG4vLyBJbnZlcnRlZCBuYXZiYXIgbGlua3NcbiRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS12b3A0LWxpbmstYWN0aXZlOiB3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjogJG5hdmJhci1pbnZlcnNlLXZvcDQtbGluay1hY3RpdmUgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc6IGRhcmtlbigkbmF2YmFyLWludmVyc2UtYmcsIDEwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjogIzQ0NDQ0NCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gSW52ZXJ0ZWQgbmF2YmFyIGJyYW5kIGxhYmVsXG4kbmF2YmFyLWludmVyc2UtYnJhbmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIEludmVydGVkIG5hdmJhciB0b2dnbGVcbiRuYXZiYXItaW52ZXJzZS10b2dnbGUtaG92ZXItYmc6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWljb24tYmFyLWJnOiB3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS10b2dnbGUtYm9yZGVyLWNvbG9yOiAjMzMzMzMzICFkZWZhdWx0O1xuXG4vLz09IE5hdnNcbi8vXG4vLyMjXG5cbi8vPT09IFNoYXJlZCBuYXYgc3R5bGVzXG4kbmF2LWxpbmstcGFkZGluZzogMTBweCAxNXB4ICFkZWZhdWx0O1xuJG5hdi1saW5rLWhvdmVyLWJnOiAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4kbmF2LWRpc2FibGVkLWxpbmstY29sb3I6ICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuJG5hdi1kaXNhYmxlZC12b3A0LWxpbmstYWN0aXZlOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuJG5hdi1vcGVuLXZvcDQtbGluay1hY3RpdmU6IHdoaXRlICFkZWZhdWx0O1xuXG4vLz09IFRhYnNcbiRuYXYtdGFicy1ib3JkZXItY29sb3I6ICNkZGRkZGQgIWRlZmF1bHQ7XG5cbiRuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvcjogJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJnOiAkY2FudmFzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5hdi10YWJzLWFjdGl2ZS12b3A0LWxpbmstYWN0aXZlOiAkZ3JheSAhZGVmYXVsdDtcbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICNkZGRkZGQgIWRlZmF1bHQ7XG5cbiRuYXYtdGFicy1qdXN0aWZpZWQtbGluay1ib3JkZXItY29sb3I6ICNkZGRkZGQgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtanVzdGlmaWVkLWFjdGl2ZS1saW5rLWJvcmRlci1jb2xvcjogJGNhbnZhc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy89PSBQaWxsc1xuJG5hdi1waWxscy1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZzogJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kbmF2LXBpbGxzLWFjdGl2ZS12b3A0LWxpbmstYWN0aXZlOiAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuLy89PSBQYWdpbmF0aW9uXG4vL1xuLy8jI1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogJGNhbnZhc3MtbGluayAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJnOiB3aGl0ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJvcmRlcjogI2RkZGRkZCAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taG92ZXItY29sb3I6ICRjYW52YXNzLWxpbmstYWN0aXZlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYmc6ICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI6ICNkZGRkZGQgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3RpdmUtYmc6ICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlcjogJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWRpc2FibGVkLWJnOiB3aGl0ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlcjogI2RkZGRkZCAhZGVmYXVsdDtcblxuLy89PSBQYWdlclxuLy9cbi8vIyNcblxuJHBhZ2VyLWJnOiAkcGFnaW5hdGlvbi1iZyAhZGVmYXVsdDtcbiRwYWdlci1ib3JkZXI6ICRwYWdpbmF0aW9uLWJvcmRlciAhZGVmYXVsdDtcbiRwYWdlci1ib3JkZXItcmFkaXVzOiAxNXB4ICFkZWZhdWx0O1xuXG4kcGFnZXItaG92ZXItYmc6ICRwYWdpbmF0aW9uLWhvdmVyLWJnICFkZWZhdWx0O1xuXG4kcGFnZXItYWN0aXZlLWJnOiAkcGFnaW5hdGlvbi1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kcGFnZXItYWN0aXZlLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cbiRwYWdlci1kaXNhYmxlZC1jb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vPT0gSnVtYm90cm9uXG4vL1xuLy8jI1xuXG4kanVtYm90cm9uLXBhZGRpbmc6IDMwcHggIWRlZmF1bHQ7XG4kanVtYm90cm9uLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1iZzogJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbiRqdW1ib3Ryb24taGVhZGluZy1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRqdW1ib3Ryb24tZm9udC1zaXplOiBjZWlsKCRmb250LXNpemUtYmFzZSAqIDEuNSkgIWRlZmF1bHQ7XG5cbi8vPT0gRm9ybSBzdGF0ZXMgYW5kIGFsZXJ0c1xuLy9cbi8vIyMgRGVmaW5lIGNvbG9ycyBmb3IgZm9ybSBmZWVkYmFjayBzdGF0ZXMgYW5kLCBieSBkZWZhdWx0LCBhbGVydHMuXG5cbiRzdGF0ZS1zdWNjZXNzLXRleHQ6ICMzYzc2M2QgIWRlZmF1bHQ7XG4kc3RhdGUtc3VjY2Vzcy1iZzogI2RmZjBkOCAhZGVmYXVsdDtcbiRzdGF0ZS1zdWNjZXNzLWJvcmRlcjogZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLXN1Y2Nlc3MtYmcsIC0xMCksIDUlKSAhZGVmYXVsdDtcblxuJHN0YXRlLWluZm8tdGV4dDogIzMxNzA4ZiAhZGVmYXVsdDtcbiRzdGF0ZS1pbmZvLWJnOiAjZDllZGY3ICFkZWZhdWx0O1xuJHN0YXRlLWluZm8tYm9yZGVyOiBkYXJrZW4oYWRqdXN0LWh1ZSgkc3RhdGUtaW5mby1iZywgLTEwKSwgNyUpICFkZWZhdWx0O1xuXG4kc3RhdGUtd2FybmluZy10ZXh0OiAjOGE2ZDNiICFkZWZhdWx0O1xuJHN0YXRlLXdhcm5pbmctYmc6ICNmY2Y4ZTMgIWRlZmF1bHQ7XG4kc3RhdGUtd2FybmluZy1ib3JkZXI6IGRhcmtlbihhZGp1c3QtaHVlKCRzdGF0ZS13YXJuaW5nLWJnLCAtMTApLCA1JSkgIWRlZmF1bHQ7XG5cbiRzdGF0ZS1kYW5nZXItdGV4dDogI2E5NDQ0MiAhZGVmYXVsdDtcbiRzdGF0ZS1kYW5nZXItYmc6ICNmMmRlZGUgIWRlZmF1bHQ7XG4kc3RhdGUtZGFuZ2VyLWJvcmRlcjogZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLWRhbmdlci1iZywgLTEwKSwgNSUpICFkZWZhdWx0O1xuXG4vLz09IFRvb2x0aXBzXG4vL1xuLy8jI1xuXG4vLyogVG9vbHRpcCBtYXggd2lkdGhcbiR0b29sdGlwLW1heC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vKiBUb29sdGlwIHRleHQgY29sb3JcbiR0b29sdGlwLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8qIFRvb2x0aXAgYmFja2dyb3VuZCBjb2xvclxuJHRvb2x0aXAtYmc6IGJsYWNrICFkZWZhdWx0O1xuJHRvb2x0aXAtb3BhY2l0eTogMC45ICFkZWZhdWx0O1xuXG4vLyogVG9vbHRpcCBhcnJvdyB3aWR0aFxuJHRvb2x0aXAtYXJyb3ctd2lkdGg6IDVweCAhZGVmYXVsdDtcblxuLy8qIFRvb2x0aXAgYXJyb3cgY29sb3JcbiR0b29sdGlwLWFycm93LWNvbG9yOiAkdG9vbHRpcC1iZyAhZGVmYXVsdDtcblxuLy89PSBQb3BvdmVyc1xuLy9cbi8vIyNcblxuLy8qIFBvcG92ZXIgYm9keSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci1iZzogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vKiBQb3BvdmVyIG1heGltdW0gd2lkdGhcbiRwb3BvdmVyLW1heC13aWR0aDogMjc2cHggIWRlZmF1bHQ7XG5cbi8vKiBQb3BvdmVyIGJvcmRlciBjb2xvclxuJHBvcG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMikgIWRlZmF1bHQ7XG5cbi8vKiBQb3BvdmVyIGZhbGxiYWNrIGJvcmRlciBjb2xvclxuJHBvcG92ZXItZmFsbGJhY2stYm9yZGVyLWNvbG9yOiAjY2NjY2NjICFkZWZhdWx0O1xuXG4vLyogUG9wb3ZlciB0aXRsZSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci10aXRsZS1iZzogZGFya2VuKCRwb3BvdmVyLWJnLCAzJSkgIWRlZmF1bHQ7XG5cbi8vKiBQb3BvdmVyIGFycm93IHdpZHRoXG4kcG9wb3Zlci1hcnJvdy13aWR0aDogMTBweCAhZGVmYXVsdDtcblxuLy8qIFBvcG92ZXIgYXJyb3cgY29sb3JcbiRwb3BvdmVyLWFycm93LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8qIFBvcG92ZXIgb3V0ZXIgYXJyb3cgd2lkdGhcbiRwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoOiAkcG9wb3Zlci1hcnJvdy13aWR0aCArIDEgIWRlZmF1bHQ7XG5cbi8vKiBQb3BvdmVyIG91dGVyIGFycm93IGNvbG9yXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogZmFkZV9pbigkcG9wb3Zlci1ib3JkZXItY29sb3IsIDAuMDUpICFkZWZhdWx0O1xuXG4vLyogUG9wb3ZlciBvdXRlciBhcnJvdyBmYWxsYmFjayBjb2xvclxuJHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I6IGRhcmtlbigkcG9wb3Zlci1mYWxsYmFjay1ib3JkZXItY29sb3IsIDIwJSkgIWRlZmF1bHQ7XG5cbi8vPT0gTGFiZWxzXG4vL1xuLy8jI1xuXG4vLyogRGVmYXVsdCBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtZGVmYXVsdC1iZzogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiBQcmltYXJ5IGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC1wcmltYXJ5LWJnOiAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8qIFN1Y2Nlc3MgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXN1Y2Nlc3MtYmc6ICRicmFuZC1zdWNjZXNzICFkZWZhdWx0O1xuXG4vLyogSW5mbyBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtaW5mby1iZzogJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG5cbi8vKiBXYXJuaW5nIGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC13YXJuaW5nLWJnOiAkYnJhbmQtd2FybmluZyAhZGVmYXVsdDtcblxuLy8qIERhbmdlciBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtZGFuZ2VyLWJnOiAkYnJhbmQtZGFuZ2VyICFkZWZhdWx0O1xuXG4vLyogRGVmYXVsdCBsYWJlbCB0ZXh0IGNvbG9yXG4kbGFiZWwtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuXG4vLyogRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIGEgbGlua2VkIGxhYmVsXG4kbGFiZWwtdm9wNC1saW5rLWFjdGl2ZTogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vPT0gTW9kYWxzXG4vL1xuLy8jI1xuXG4vLyogUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG4kbW9kYWwtaW5uZXItcGFkZGluZzogMTVweCAhZGVmYXVsdDtcblxuLy8qIFBhZGRpbmcgYXBwbGllZCB0byB0aGUgbW9kYWwgdGl0bGVcbiRtb2RhbC10aXRsZS1wYWRkaW5nOiAxNXB4ICFkZWZhdWx0O1xuXG4vLyogTW9kYWwgdGl0bGUgbGluZS1oZWlnaHRcbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG5cbi8vKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIGNvbnRlbnQgYXJlYVxuJG1vZGFsLWNvbnRlbnQtYmc6IHdoaXRlICFkZWZhdWx0O1xuXG4vLyogTW9kYWwgY29udGVudCBib3JkZXIgY29sb3JcbiRtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpICFkZWZhdWx0O1xuXG4vLyogTW9kYWwgY29udGVudCBib3JkZXIgY29sb3IgKipmb3IgSUU4KipcbiRtb2RhbC1jb250ZW50LWZhbGxiYWNrLWJvcmRlci1jb2xvcjogIzk5OTk5OSAhZGVmYXVsdDtcblxuLy8qIE1vZGFsIGJhY2tkcm9wIGJhY2tncm91bmQgY29sb3JcbiRtb2RhbC1iYWNrZHJvcC1iZzogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vKiBNb2RhbCBiYWNrZHJvcCBvcGFjaXR5XG4kbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTogMC41ICFkZWZhdWx0O1xuXG4vLyogTW9kYWwgaGVhZGVyIGJvcmRlciBjb2xvclxuJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I6ICNlNWU1ZTUgIWRlZmF1bHQ7XG5cbi8vKiBNb2RhbCBmb290ZXIgYm9yZGVyIGNvbG9yXG4kbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjogJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRtb2RhbC1sZzogOTAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtbWQ6IDYwMHB4ICFkZWZhdWx0O1xuJG1vZGFsLXNtOiAzMDBweCAhZGVmYXVsdDtcblxuLy89PSBBbGVydHNcbi8vXG4vLyMjIERlZmluZSBhbGVydCBjb2xvcnMsIGJvcmRlciByYWRpdXMsIGFuZCBwYWRkaW5nLlxuXG4kYWxlcnQtcGFkZGluZzogMTVweCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbiRhbGVydC1zdWNjZXNzLWJnOiAkc3RhdGUtc3VjY2Vzcy1iZyAhZGVmYXVsdDtcbiRhbGVydC1zdWNjZXNzLXRleHQ6ICRzdGF0ZS1zdWNjZXNzLXRleHQgIWRlZmF1bHQ7XG4kYWxlcnQtc3VjY2Vzcy1ib3JkZXI6ICRzdGF0ZS1zdWNjZXNzLWJvcmRlciAhZGVmYXVsdDtcblxuJGFsZXJ0LWluZm8tYmc6ICRzdGF0ZS1pbmZvLWJnICFkZWZhdWx0O1xuJGFsZXJ0LWluZm8tdGV4dDogJHN0YXRlLWluZm8tdGV4dCAhZGVmYXVsdDtcbiRhbGVydC1pbmZvLWJvcmRlcjogJHN0YXRlLWluZm8tYm9yZGVyICFkZWZhdWx0O1xuXG4kYWxlcnQtd2FybmluZy1iZzogJHN0YXRlLXdhcm5pbmctYmcgIWRlZmF1bHQ7XG4kYWxlcnQtd2FybmluZy10ZXh0OiAkc3RhdGUtd2FybmluZy10ZXh0ICFkZWZhdWx0O1xuJGFsZXJ0LXdhcm5pbmctYm9yZGVyOiAkc3RhdGUtd2FybmluZy1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRhbGVydC1kYW5nZXItYmc6ICRzdGF0ZS1kYW5nZXItYmcgIWRlZmF1bHQ7XG4kYWxlcnQtZGFuZ2VyLXRleHQ6ICRzdGF0ZS1kYW5nZXItdGV4dCAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItYm9yZGVyOiAkc3RhdGUtZGFuZ2VyLWJvcmRlciAhZGVmYXVsdDtcblxuLy89PSBQcm9ncmVzcyBiYXJzXG4vL1xuLy8jI1xuXG4vLyogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgd2hvbGUgcHJvZ3Jlc3MgY29tcG9uZW50XG4kcHJvZ3Jlc3MtYmc6IHdoaXRlc21va2UgIWRlZmF1bHQ7XG5cbi8vKiBQcm9ncmVzcyBiYXIgdGV4dCBjb2xvclxuJHByb2dyZXNzLWJhci1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vKiBEZWZhdWx0IHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1iZzogJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vKiBTdWNjZXNzIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1zdWNjZXNzLWJnOiAkYnJhbmQtc3VjY2VzcyAhZGVmYXVsdDtcblxuLy8qIFdhcm5pbmcgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLXdhcm5pbmctYmc6ICRicmFuZC13YXJuaW5nICFkZWZhdWx0O1xuXG4vLyogRGFuZ2VyIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1kYW5nZXItYmc6ICRicmFuZC1kYW5nZXIgIWRlZmF1bHQ7XG5cbi8vKiBJbmZvIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1pbmZvLWJnOiAkYnJhbmQtaW5mbyAhZGVmYXVsdDtcblxuLy89PSBMaXN0IGdyb3VwXG4vL1xuLy8jI1xuXG4vLyogQmFja2dyb3VuZCBjb2xvciBvbiBgLmxpc3QtZ3JvdXAtaXRlbWBcbiRsaXN0LWdyb3VwLWJnOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8qIGAubGlzdC1ncm91cC1pdGVtYCBib3JkZXIgY29sb3JcbiRsaXN0LWdyb3VwLWJvcmRlcjogI2RkZGRkZCAhZGVmYXVsdDtcblxuLy8qIExpc3QgZ3JvdXAgYm9yZGVyIHJhZGl1c1xuJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qIEJhY2tncm91bmQgY29sb3Igb2Ygc2luZ2xlIGxpc3QgaXRlbXMgb24gaG92ZXJcbiRsaXN0LWdyb3VwLWhvdmVyLWJnOiB3aGl0ZXNtb2tlICFkZWZhdWx0O1xuXG4vLyogVGV4dCBjb2xvciBvZiBhY3RpdmUgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yOiAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuLy8qIEJhY2tncm91bmQgY29sb3Igb2YgYWN0aXZlIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1iZzogJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG5cbi8vKiBCb3JkZXIgY29sb3Igb2YgYWN0aXZlIGxpc3QgZWxlbWVudHNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXI6ICRsaXN0LWdyb3VwLWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuLy8qIFRleHQgY29sb3IgZm9yIGNvbnRlbnQgd2l0aGluIGFjdGl2ZSBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjogbGlnaHRlbigkbGlzdC1ncm91cC1hY3RpdmUtYmcsIDQwJSkgIWRlZmF1bHQ7XG5cbi8vKiBUZXh0IGNvbG9yIG9mIGRpc2FibGVkIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbi8vKiBUZXh0IGNvbG9yIGZvciBjb250ZW50IHdpdGhpbiBkaXNhYmxlZCBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvciAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtbGluay1jb2xvcjogIzU1NTU1NSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLXZvcDQtbGluay1hY3RpdmU6ICRsaXN0LWdyb3VwLWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1saW5rLWhlYWRpbmctY29sb3I6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8vPT0gUGFuZWxzXG4vL1xuLy8jI1xuXG4kcGFuZWwtYmc6IHdoaXRlICFkZWZhdWx0O1xuJHBhbmVsLWJvZHktcGFkZGluZzogMTVweCAhZGVmYXVsdDtcbiRwYW5lbC1oZWFkaW5nLXBhZGRpbmc6IDEwcHggMTVweCAhZGVmYXVsdDtcbiRwYW5lbC1mb290ZXItcGFkZGluZzogJHBhbmVsLWhlYWRpbmctcGFkZGluZyAhZGVmYXVsdDtcbiRwYW5lbC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuXG4vLyogQm9yZGVyIGNvbG9yIGZvciBlbGVtZW50cyB3aXRoaW4gcGFuZWxzXG4kcGFuZWwtaW5uZXItYm9yZGVyOiAjZGRkZGRkICFkZWZhdWx0O1xuJHBhbmVsLWZvb3Rlci1iZzogd2hpdGVzbW9rZSAhZGVmYXVsdDtcblxuJHBhbmVsLWRlZmF1bHQtdGV4dDogJGdyYXktZGFyayAhZGVmYXVsdDtcbiRwYW5lbC1kZWZhdWx0LWJvcmRlcjogI2RkZGRkZCAhZGVmYXVsdDtcbiRwYW5lbC1kZWZhdWx0LWhlYWRpbmctYmc6IHdoaXRlc21va2UgIWRlZmF1bHQ7XG5cbiRwYW5lbC1wcmltYXJ5LXRleHQ6IHdoaXRlICFkZWZhdWx0O1xuJHBhbmVsLXByaW1hcnktYm9yZGVyOiAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbiRwYW5lbC1wcmltYXJ5LWhlYWRpbmctYmc6ICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuXG4kcGFuZWwtc3VjY2Vzcy10ZXh0OiAkc3RhdGUtc3VjY2Vzcy10ZXh0ICFkZWZhdWx0O1xuJHBhbmVsLXN1Y2Nlc3MtYm9yZGVyOiAkc3RhdGUtc3VjY2Vzcy1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtc3VjY2Vzcy1oZWFkaW5nLWJnOiAkc3RhdGUtc3VjY2Vzcy1iZyAhZGVmYXVsdDtcblxuJHBhbmVsLWluZm8tdGV4dDogJHN0YXRlLWluZm8tdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC1pbmZvLWJvcmRlcjogJHN0YXRlLWluZm8tYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLWluZm8taGVhZGluZy1iZzogJHN0YXRlLWluZm8tYmcgIWRlZmF1bHQ7XG5cbiRwYW5lbC13YXJuaW5nLXRleHQ6ICRzdGF0ZS13YXJuaW5nLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtd2FybmluZy1ib3JkZXI6ICRzdGF0ZS13YXJuaW5nLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC13YXJuaW5nLWhlYWRpbmctYmc6ICRzdGF0ZS13YXJuaW5nLWJnICFkZWZhdWx0O1xuXG4kcGFuZWwtZGFuZ2VyLXRleHQ6ICRzdGF0ZS1kYW5nZXItdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC1kYW5nZXItYm9yZGVyOiAkc3RhdGUtZGFuZ2VyLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC1kYW5nZXItaGVhZGluZy1iZzogJHN0YXRlLWRhbmdlci1iZyAhZGVmYXVsdDtcblxuLy89PSBUaHVtYm5haWxzXG4vL1xuLy8jI1xuXG4vLyogUGFkZGluZyBhcm91bmQgdGhlIHRodW1ibmFpbCBpbWFnZVxuJHRodW1ibmFpbC1wYWRkaW5nOiA0cHggIWRlZmF1bHQ7XG5cbi8vKiBUaHVtYm5haWwgYmFja2dyb3VuZCBjb2xvclxuJHRodW1ibmFpbC1iZzogJGNhbnZhc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8qIFRodW1ibmFpbCBib3JkZXIgY29sb3JcbiR0aHVtYm5haWwtYm9yZGVyOiAjZGRkZGRkICFkZWZhdWx0O1xuXG4vLyogVGh1bWJuYWlsIGJvcmRlciByYWRpdXNcbiR0aHVtYm5haWwtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qIEN1c3RvbSB0ZXh0IGNvbG9yIGZvciB0aHVtYm5haWwgY2FwdGlvbnNcbiR0aHVtYm5haWwtY2FwdGlvbi1jb2xvcjogJHRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vKiBQYWRkaW5nIGFyb3VuZCB0aGUgdGh1bWJuYWlsIGNhcHRpb25cbiR0aHVtYm5haWwtY2FwdGlvbi1wYWRkaW5nOiA5cHggIWRlZmF1bHQ7XG5cbi8vPT0gV2VsbHNcbi8vXG4vLyMjXG5cbiR3ZWxsLWJnOiB3aGl0ZXNtb2tlICFkZWZhdWx0O1xuJHdlbGwtYm9yZGVyOiBkYXJrZW4oJHdlbGwtYmcsIDclKSAhZGVmYXVsdDtcblxuLy89PSBCYWRnZXNcbi8vXG4vLyMjXG5cbiRiYWRnZS1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vKiBMaW5rZWQgYmFkZ2UgdGV4dCBjb2xvciBvbiBob3ZlclxuJGJhZGdlLXZvcDQtbGluay1hY3RpdmU6IHdoaXRlICFkZWZhdWx0O1xuJGJhZGdlLWJnOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIEJhZGdlIHRleHQgY29sb3IgaW4gYWN0aXZlIG5hdiBsaW5rXG4kYmFkZ2UtYWN0aXZlLWNvbG9yOiAkY2FudmFzcy1saW5rICFkZWZhdWx0O1xuXG4vLyogQmFkZ2UgYmFja2dyb3VuZCBjb2xvciBpbiBhY3RpdmUgbmF2IGxpbmtcbiRiYWRnZS1hY3RpdmUtYmc6IHdoaXRlICFkZWZhdWx0O1xuXG4kYmFkZ2UtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kYmFkZ2UtbGluZS1oZWlnaHQ6IDEgIWRlZmF1bHQ7XG4kYmFkZ2UtYm9yZGVyLXJhZGl1czogMTBweCAhZGVmYXVsdDtcblxuLy89PSBCcmVhZGNydW1ic1xuLy9cbi8vIyNcblxuJGJyZWFkY3J1bWItcGFkZGluZy12ZXJ0aWNhbDogOHB4ICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsOiAxNXB4ICFkZWZhdWx0O1xuXG4vLyogQnJlYWRjcnVtYiBiYWNrZ3JvdW5kIGNvbG9yXG4kYnJlYWRjcnVtYi1iZzogd2hpdGVzbW9rZSAhZGVmYXVsdDtcblxuLy8qIEJyZWFkY3J1bWIgdGV4dCBjb2xvclxuJGJyZWFkY3J1bWItY29sb3I6ICNjY2NjY2MgIWRlZmF1bHQ7XG5cbi8vKiBUZXh0IGNvbG9yIG9mIGN1cnJlbnQgcGFnZSBpbiB0aGUgYnJlYWRjcnVtYlxuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIFRleHR1YWwgc2VwYXJhdG9yIGZvciBiZXR3ZWVuIGJyZWFkY3J1bWIgZWxlbWVudHNcbiRicmVhZGNydW1iLXNlcGFyYXRvcjogXCIvXCIgIWRlZmF1bHQ7XG5cbi8vPT0gQ2Fyb3VzZWxcbi8vXG4vLyMjXG5cbiRjYXJvdXNlbC10ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KSAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNvbnRyb2wtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtd2lkdGg6IDE1JSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLW9wYWNpdHk6IDAuNSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZTogMjBweCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc6IHdoaXRlICFkZWZhdWx0O1xuJGNhcm91c2VsLWluZGljYXRvci1ib3JkZXItY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG5cbi8vPT0gQ2xvc2Vcbi8vXG4vLyMjXG5cbiRjbG9zZS1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcbiRjbG9zZS1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kY2xvc2UtdGV4dC1zaGFkb3c6IDAgMXB4IDAgd2hpdGUgIWRlZmF1bHQ7XG5cbi8vPT0gQ29kZVxuLy9cbi8vIyNcblxuJGNvZGUtY29sb3I6ICNjNzI1NGUgIWRlZmF1bHQ7XG4kY29kZS1iZzogI2Y5ZjJmNCAhZGVmYXVsdDtcblxuJGtiZC1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4ka2JkLWJnOiAjMzMzMzMzICFkZWZhdWx0O1xuXG4kcHJlLWJnOiB3aGl0ZXNtb2tlICFkZWZhdWx0O1xuJHByZS1jb2xvcjogJGdyYXktZGFyayAhZGVmYXVsdDtcbiRwcmUtYm9yZGVyLWNvbG9yOiAjY2NjY2NjICFkZWZhdWx0O1xuJHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ6IDM0MHB4ICFkZWZhdWx0O1xuXG4vLz09IFR5cGVcbi8vXG4vLyMjXG5cbi8vKiBIb3Jpem9udGFsIG9mZnNldCBmb3IgZm9ybXMgYW5kIGxpc3RzLlxuJGNvbXBvbmVudC1vZmZzZXQtaG9yaXpvbnRhbDogMTgwcHggIWRlZmF1bHQ7XG5cbi8vKiBUZXh0IG11dGVkIGNvbG9yXG4kdGV4dC1tdXRlZDogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiBBYmJyZXZpYXRpb25zIGFuZCBhY3JvbnltcyBib3JkZXIgY29sb3JcbiRhYmJyLWJvcmRlci1jb2xvcjogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiBIZWFkaW5ncyBzbWFsbCBjb2xvclxuJGhlYWRpbmdzLXNtYWxsLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIEJsb2NrcXVvdGUgc21hbGwgY29sb3JcbiRibG9ja3F1b3RlLXNtYWxsLWNvbG9yOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qIEJsb2NrcXVvdGUgZm9udCBzaXplXG4kYmxvY2txdW90ZS1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vKiBCbG9ja3F1b3RlIGJvcmRlciBjb2xvclxuJGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yOiAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4vLyogUGFnZSBoZWFkZXIgYm9yZGVyIGNvbG9yXG4kcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yOiAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4vLyogV2lkdGggb2YgaG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0IHRpdGxlc1xuJGRsLWhvcml6b250YWwtb2Zmc2V0OiAkY29tcG9uZW50LW9mZnNldC1ob3Jpem9udGFsICFkZWZhdWx0O1xuXG4vLyogSG9yaXpvbnRhbCBsaW5lIGNvbG9yLlxuJGhyLWJvcmRlcjogJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbiIsCgkJIiVib3gge1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBhZGRpbmc6ICRwYWQ7XG59XG5cbiVib3gtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cblxuJWJveC13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkY2FudmFzcy1saWdodGdyYXk7XG4gIEBleHRlbmQgJWJveDtcbn0iLAoJCSIlY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAkY2FudmFzcy1jb250YWluZXI7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogMCAkcGFkO1xuICBAaW5jbHVkZSBoZWxwZXJzLWNsZWFyO1xufSIsCgkJIiVoZXJvQW5kV2lkZGdldHMge1xuICAuaGVybyB7XG4gICAgbWluLWhlaWdodDogMzQwcHg7XG4gICAgcGFkZGluZzogMzBweCAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuNXM7XG4gICAgLmhlcm8tZGVzYyB7XG4gICAgICBtYXJnaW4tdG9wOiAtMzVweDtcbiAgICB9XG4gICAgJi5ub3RpZnkge1xuICAgICAgYmFja2dyb3VuZDogIzZlNmU2ZSB1cmwoI3skcHVibGljUGF0aH0vYmx1ZXByaW50cy92b3A0L2ltYWdlcy9oZXJvL25vdGlmeS5wbmcpIHRvcCBjZW50ZXIgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5jb250YWluZXItd2lkZ2V0cyB7XG4gICAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldCkge1xuICAgIC5oZXJvIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNzVweDtcbiAgICB9XG4gICAgLmNvbnRhaW5lci13aWRnZXRzIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xNzVweDtcbiAgICB9XG4gIH1cbn0iLAoJCSIuZm9vdGVyIHtcbiAgcGFkZGluZzogJHBhZCoyIDA7XG4gIGJhY2tncm91bmQ6ICM0NzFFNUU7XG4gIG1hcmdpbi10b3A6IC0xMTBweDtcbiAgLmNvbnRhaW5lciB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbiAgLnNtYWxsZXJUZXh0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbi5jb21wb25lbnRzX2xhbmd1YWdlU2VsZWN0b3Ige1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAkcGFkLzI7XG4gIC5idG4tZGVmYXVsdCB7XG4gICAgYm9yZGVyOiAxO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwcHggJHBhZC8yIDBweCAkcGFkLzI7XG4gIH1cbn1cbi5mb290ZXItbGlua3Mtcm93IHtcbiAgbWFyZ2luLWJvdHRvbTogJHBhZDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b20gOjA7XG4gIH1cbn1cbi5mb290ZXItbGlua3MtY29sIHtcbiAgQGluY2x1ZGUgaGVscGVycy1jbGVhcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG4uZm9vdGVyLWxpbmtzLWxpbmsge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkICogMjtcbiAgJjpsYXN0LWNoaWxkLCAmLm5vQm9yZGVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG59XG4uZm9vdGVyLWxpbmtzLWxpbmstLXNvY2lhbCB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogJHBhZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCAkY2FudmFzcy10aHJlc2hvbGQtdGFibGV0KSB7XG4gIC5mb290ZXItbGlua3MtY29sLCAuZm9vdGVyLWxpbmtzLWNvbDpsYXN0LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206ICRwYWQ7XG4gIH1cbiAgLmZvb3Rlci1saW5rcy1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFkO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhO1xuICB9XG4gIC5mb290ZXItbGlua3MtbGluay0tc29jaWFsIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRwYWQ7XG4gIH1cbn0iLAoJCSIuaGVhZGVyIHtcbiAgaGVpZ2h0OiA4MHB4O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAxM3B4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAuY29tcG9uZW50c19sYW5ndWFnZVNlbGVjdG9yIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRwYWQvMjtcbiAgICAuYnRuLWRlZmF1bHQge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG4gIH1cbiAgLmhlYWRlci1tb2JpbGUtam9pbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubG9naW4ge1xuICAgIG1hcmdpbi1yaWdodDogJHBhZC8yO1xuICB9XG4gIC5zaWdudXAge1xuICAgIG1hcmdpbi1yaWdodDogJHBhZDtcbiAgfVxuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgLy9oZWlnaHQ6IDY1cHg7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgfVxuICAubGluayB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDY1cHg7XG4gICAgW2ljb25dLCAuZmEuZmEtc3Rhci1vIHtcbiAgICAgIEBpbmNsdWRlIGljb24oMTRweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgIGZpbGw6ICRjYW52YXNzLWRlZmF1bHQtdGV4dDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogNnB4O1xuICAgICAgYm90dG9tOiAtOHB4O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuNXM7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNhbnZhc3MtcHVycGxlLCAyNSk7XG4gICAgICB9XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhbnZhc3MtcHVycGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDYwcHg7XG4gIH1cbn1cblxuLmhlYWRlci1sb2dvIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmhlYWRlci1uYXYtYWN0aXZlIHtcbiAgY29sb3I6ICRjYW52YXNzLWxpbmstYWN0aXZlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5oZWFkZXItYmFsYW5jZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkKjI7XG59XG4uaGVhZGVyLWNvbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgJjpudGgtY2hpbGQoMSkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gICY6bnRoLWNoaWxkKDIpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG4gICY6bnRoLWNoaWxkKDMpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbi5oZWFkZXItY29sLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6ICRwYWQqMjtcbiAgY29sb3I6ICRjYW52YXNzLWRlZmF1bHQtdGV4dDtcbiAgLmZhIH4gc3BhbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIH1cbn1cbi5oZWFkZXItYmFycyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyN3B4O1xuICBjb2xvcjogJGNhbnZhc3MtcHVycGxlO1xufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCAkY2FudmFzcy10aHJlc2hvbGQtdGFibGV0KSB7XG4gIC5oZWFkZXIge1xuICAgIC5jb21wb25lbnRzX2xhbmd1YWdlU2VsZWN0b3Ige1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwICRwYWQ7XG4gICAgfVxuICAgIGhlaWdodDogNTBweDtcbiAgICBpbWcge1xuICAgICAgbWF4LWhlaWdodDogMzVweDtcbiAgICB9XG4gICAgLmhlYWRlci1jb2w6bnRoLWNoaWxkKDEpIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgICB9XG4gICAgLmhlYWRlci1jb2w6bnRoLWNoaWxkKDIpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5oZWFkZXItY29sOm50aC1jaGlsZCgzKSB7XG4gICAgICB3aWR0aDogNTBweDtcbiAgICB9XG4gICAgLmxvZ2luLCAuc2lnbnVwLCAuam9pbk5vdyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuaGVhZGVyLWJhcnMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAuaGVhZGVyLW1vYmlsZS1qb2luIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHBhZGRpbmc6IDAgJHBhZDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cbiAgICAuaGVhZGVyLWxvZ28ge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgICAuaGVhZGVyLWJhcnMge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY2FudmFzcy1saWdodGdyYXk7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgLmZhLWJhcnMge1xuICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLAoJCSIuaGVybyB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMDtcbiAgLmNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogODAwcHg7XG4gIH1cbiAgLmJ1dHRvbiB7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tdG9wOiAkcGFkO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbn1cbi5oZXJvLXllbGxvdyB7XG4gIGNvbG9yOiAkY2FudmFzcy15ZWxsb3c7XG59XG5cbi5oZXJvLWRlc2Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogNTAlO1xuICBAZXh0ZW5kICV2ZXJ0aWNhbGx5Q2VudGVyO1xuICBAZXh0ZW5kIC5jb250YWluZXI7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDQ1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogNTVweDtcbiAgfVxuICBwIHtcbiAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuICBhOm5vdCguYnV0dG9uKSB7XG4gICAgY29sb3I6ICRjYW52YXNzLXllbGxvdztcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCAkY2FudmFzcy10aHJlc2hvbGQtdGFibGV0KSB7XG4gIC5oZXJvIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgLmhlcm8tZGVzYyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtYXQoZmFsc2UsICRjYW52YXNzLXRocmVzaG9sZC1tb2JpbGUpIHtcbiAgLmhlcm8ge1xuICAgIC5oZXJvLWRlc2Mge1xuICAgICAgaDEge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuaGVyby1kZXNjLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn0iLAoJCSIuYm94U2hhZG93LS10b3Age1xuICBib3gtc2hhZG93OiAtMXB4IC00cHggMTBweCAtMnB4IHJnYmEoMCwwLDAsMC4zNyk7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4uc2l0ZS1vdmVybGF5IHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi5tb2JpbGVIZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuNXM7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgei1pbmRleDogMTAwMTtcbiAgLnN1cnZleXMgLm5vdGlmaWNhdGlvbi1idWJibGUge1xuICAgIG1hcmdpbi1sZWZ0OiAkcGFkLzI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICB9XG4gIC5wcm9maWxlSW5mbyB7XG4gICAgcGFkZGluZzogJHBhZDtcbiAgfVxuXG4gICYubW9iaWxlSGVhZGVyLS1zZWNvbmRhcnkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLnJld2FyZHMtc2VsZWN0aW9uLW1lbnUtc2VsZWN0IHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5tb2JpbGVIZWFkZXItY2xvc2Uge1xuICAgICAgcmlnaHQ6IGluaGVyaXQ7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5tb2JpbGVIZWFkZXItY29udGVudCB7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjAwcHg7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgLm1vYmlsZUhlYWRlci0tc2Vjb25kYXJ5X190aXRsZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWFlYTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgIC5yZXdhcmRzLXNlbGVjdGlvbi1tZW51LWFtb3VudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5yZXdhcmRzLXNlbGVjdGlvbi10aXRsZSB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLnJld2FyZHMtc2VsZWN0aW9uLXRpdGxlLnJld2FyZHMtc2VsZWN0aW9uLXN5bWJvbCB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIC5tb2JpbGVIZWFkZXItLXNlY29uZGFyeV9fYWN0aW9ucyB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICBwYWRkaW5nOiAxcmVtIDAgMDtcblxuICAgICAgbGkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRncmF5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucnpzbGlkZXIgLnJ6LWJ1YmJsZSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgLmNvbnRlbnRBbmRMaW5rcy1saW5rcy1saW5rIHtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4ubW9iaWxlSGVhZGVyX19mb290ZXJBY3Rpb25zIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTBweDtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG5cbiAgPiBkaXYgPiAqIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAuNzVyZW0gMXJlbTtcbiAgfVxufVxuXG4ubW9iaWxlSGVhZGVyLWxvZ28ge1xuICBmbG9hdDogbGVmdDtcbn1cbi5tb2JpbGVIZWFkZXItcHJvZmlsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogJHBhZDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDE1MHB4KTtcbn1cbi5tb2JpbGVIZWFkZXItY2FydCB7XG4gIGZsb2F0OiByaWdodDtcbiAgaGVpZ2h0OiAzN3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIFtpY29uXSB7XG4gICAgQGluY2x1ZGUgaWNvbigyNXB4KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XG4gICAgZmlsbDogJGNhbnZhc3MtZGVmYXVsdC10ZXh0O1xuICB9XG4gIC5ub3RpZmljYXRpb24tYnViYmxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgei1pbmRleDogMTtcbiAgfVxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLSRwYWQ7XG4gICAgYm90dG9tOiAtJHBhZDtcbiAgICByaWdodDogNjVweDtcbiAgICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1saWdodGdyYXk7XG4gICAgd2lkdGg6IDFweDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgfVxufVxuLm1vYmlsZUhlYWRlci1wcm9maWxlLW5hbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IGRhcmtlbigkY2FudmFzcy1wdXJwbGUsIDIwKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXgtd2lkdGg6IDEyMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5tb2JpbGVIZWFkZXItcHJvZmlsZS1iYWxhbmNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY2FudmFzcy1kZWZhdWx0LXRleHQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG5cbi5tb2JpbGVIZWFkZXItcHJvZmlsZVByb2dyZXNzIHtcbiAgYmFja2dyb3VuZDogJGNhbnZhc3MtcHVycGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBwYWRkaW5nOiAycHggMDtcbiAgd2lkdGg6IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1vYmlsZUhlYWRlci1sb2dvIHtcbiAgbWF4LWhlaWdodDogNDBweDtcbiAgbWF4LXdpZHRoOiAxMTBweDtcbn1cblxuLm1vYmlsZUhlYWRlci1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIG9wYWNpdHk6IC44O1xuICB6LWluZGV4OiAtMjtcbn1cblxuLm1vYmlsZUhlYWRlci1jb250ZW50LXJvdyB7XG4gIHBhZGRpbmc6ICRwYWQvMiAkcGFkO1xuICBAaW5jbHVkZSBoZWxwZXJzLWNsZWFyO1xufVxuXG4ubW9iaWxlSGVhZGVyLWNvbnRlbnQtbGluayB7XG4gIHBhZGRpbmc6ICRwYWQgMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiBkYXJrZW4oJGNhbnZhc3MtZGFya2dyYXksIDEwKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tbGVmdDogLSRwYWQ7XG4gIG1hcmdpbi1yaWdodDogLSRwYWQ7XG4gIHBhZGRpbmc6ICRwYWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAuZmEge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWQvMjtcbiAgfVxuICAuZmEuZmEtc3Rhci1vIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG4gIFtpY29uXSwuZmEuZmEtc3Rhci1vIHtcbiAgICBAaW5jbHVkZSBpY29uKDE1cHgpO1xuICAgIG1hcmdpbi1sZWZ0OiAxMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMTdweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgZmlsbDogJGNhbnZhc3MtZGVmYXVsdC10ZXh0O1xuICB9XG4gICYuYm90dG9tQm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRncmF5O1xuICB9XG4gICYuc3VibGluayB7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkKjU7XG4gIH1cbiAgJi5hY3RpdmUsICYuYWN0aXZlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1wdXJwbGU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIFtpY29uXSB7XG4gICAgICBmaWxsOiB3aGl0ZTtcbiAgICB9XG4gICAgLmZhLmZhLXN0YXItbyB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIC5tb2JpbGVIZWFkZXItcHJvZmlsZVByb2dyZXNzIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgY29sb3I6ICRjYW52YXNzLWRlZmF1bHQtdGV4dDtcbiAgICB9XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGNhbnZhc3MtbGlnaHRncmF5O1xuICB9XG59XG5cbi5tb2JpbGVIZWFkZXItY29udGVudC1yb3ctLWJvcmRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2FudmFzcy1saWdodGdyYXk7XG59XG5cbi5tb2JpbGVIZWFkZXItY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1wdXJwbGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5tb2JpbGVIZWFkZXItY29udGVudCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1MHB4KTsgLy8gNTBweCBpcyB3aWR0aCBvZiBcInhcIiBidXR0b24gY29sdW1uXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldCkge1xuICBib2R5Lm1vYmlsZS1uYXYtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLm1vYmlsZUhlYWRlci1vdmVybGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuc2l0ZS1vdmVybGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3BhY2l0eTogLjc7XG4gICAgICB6LWluZGV4OiAxMDAwO1xuICAgIH1cbiAgICAubW9iaWxlSGVhZGVyOm5vdCgubW9iaWxlSGVhZGVyLS1zZWNvbmRhcnkpIHsgLy8gRG8gbm90IG9wZW4gdGhlIHNlY29uZGFyeSBoZWFkZXIgYXMgd2VsbC5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIGJvZHkge1xuICAgICYubW9iaWxlLW5hdi1vcGVuLS1zZWNvbmRhcnkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgLm1vYmlsZUhlYWRlci1vdmVybGF5LFxuICAgICAgLnJld2FyZHMtbW9iaWxlLXN1Ym1lbnUsXG4gICAgICAucmV3YXJkcy1tb2JpbGUtc3VibWVudSA+ICpcbiAgICAgIC5zaXRlLW92ZXJsYXksXG4gICAgICAuaGVhZGVyIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cblxuICAgICAgLm1vYmlsZUhlYWRlci5tb2JpbGVIZWFkZXItLXNlY29uZGFyeSB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AaW5jbHVkZSByZXNwb25kLWF0KCRjYW52YXNzLXRocmVzaG9sZC1tb2JpbGUsICRjYW52YXNzLXRocmVzaG9sZC10YWJsZXQpIHtcbiAgYm9keSB7XG4gICAgJi5tb2JpbGUtbmF2LW9wZW4tLXNlY29uZGFyeSB7XG4gICAgICAubW9iaWxlSGVhZGVyLm1vYmlsZUhlYWRlci0tc2Vjb25kYXJ5IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCgkJIiRwcm9tby1yZXdhcmQtc2l6ZTogMTIwcHg7XG5cbi5wcm9tb1Jld2FyZHMge1xuICBAaW5jbHVkZSB2ZXJ0aWNhbGx5Q2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wcm9tb1Jld2FyZHMtcmV3YXJkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGhlaWdodDogJHByb21vLXJld2FyZC1zaXplO1xuICB3aWR0aDogJHByb21vLXJld2FyZC1zaXplO1xuICBwYWRkaW5nOiAkcGFkLzI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogJHBhZC8yO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAycztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIG9wYWNpdHk6IDE7XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgQGV4dGVuZCAldmVydGljYWxseUNlbnRlcjtcbiAgICBsZWZ0OiAxMiU7XG4gIH1cbn1cblxuLnByb21vUmV3YXJkcy1yZXdhcmQubmctZW50ZXIge1xuICBvcGFjaXR5OiAwO1xufVxuLnByb21vUmV3YXJkcy1yZXdhcmQubmctZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5wcm9tb1Jld2FyZHMtcmV3YXJkLm5nLWxlYXZlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCAkY2FudmFzcy1jb250YWluZXIgKyAxNXB4KSB7XG4gIC5wcm9tb1Jld2FyZHMge1xuICAgIC5wcm9tb1Jld2FyZHMtcmV3YXJkIHtcbiAgICAgIHdpZHRoOiA5MHB4O1xuICAgICAgaGVpZ2h0OiA5MHB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCA4NTBweCkge1xuICAucHJvbW9SZXdhcmRzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLnByb21vUmV3YXJkcy1yZXdhcmQge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldCkge1xuICAucHJvbW9SZXdhcmRzIHtcbiAgICBAaW5jbHVkZSByZW1vdmVWZXJ0aWNhbGx5Q2VudGVyO1xuICB9XG59IiwKCQkiJHByb21vRm9vdGVyLWhlaWdodDogMzAwcHg7XG5cbi5wcm9tb0Zvb3RlciB7XG4gIG1hcmdpbjogJHBhZCAwO1xuICBAaW5jbHVkZSBoZWxwZXJzLWNsZWFyO1xuICAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgfVxuICBoMyB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuICBwIHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG4gIC5idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBwYWRkaW5nOiAxMnB4ICRwYWQqMjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwgLjEpO1xuICAgIH1cbiAgfVxufVxuXG4ucHJvbW9Gb290ZXItY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICNmZmY7XG4gIEBleHRlbmQgJXZlcnRpY2FsbHlDZW50ZXI7XG59XG5cbi5wcm9tb0Zvb3Rlci1vdmVybGF5IHtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZDogIzQ0NDtcbiAgb3BhY2l0eTogLjg1O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucHJvbW9Gb290ZXItcHJvbW8ge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6ICRwYWQ7XG4gIG1hcmdpbjogYXV0bztcbiAgaGVpZ2h0OiAkcHJvbW9Gb290ZXItaGVpZ2h0O1xuICB3aWR0aDogMzAlO1xufVxuXG4ucHJvbW9Gb290ZXItb3ZlcmxheS1ncmVlbiAucHJvbW9Gb290ZXItb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IGRhcmtlbigkY2FudmFzcy1wdXJwbGUsIDMwKTtcbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldCkge1xuICAucHJvbW9Gb290ZXIge1xuICAgIC5jb250YWluZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIC5wcm9tb0Zvb3Rlci1wcm9tbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhZDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLnByb21vRm9vdGVyLWNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgcmVtb3ZlVmVydGljYWxseUNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi5ub3RpZmljYXRpb24tYnViYmxlIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjYW52YXNzLXJlZDtcbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDE2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6ICRjYW52YXNzLXJlZDtcbn0iLAoJCSIkc2l0ZU5vdGlmaWNhdGlvbi1iZzogIzMzMzMzMztcbiRzaXRlTm90aWZpY2F0aW9uLWNvbG9yOiAjZmZmO1xuXG5AbWl4aW4gY29sb3JpemUtbm90aWZpY2F0aW9uKCR0ZXh0Q29sb3IsICRiZ0NvbG9yKSB7XG4gIGNvbG9yOiAkdGV4dENvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkYmdDb2xvciwgMTApO1xuICAubGFiZWwsIC5mYSB7XG4gICAgY29sb3I6ICR0ZXh0Q29sb3I7XG4gIH1cbn1cblxuYm9keS5zaXRlTm90aWZpY2F0aW9uU2hvdyB7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICAuaGVhZGVyIHtcbiAgICB0b3A6IDQwcHg7XG4gIH1cbiAgLm1vZGFsIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICB9XG59XG5cbi5zaXRlTm90aWZpY2F0aW9uIHtcbiAgJi5kZWZhdWx0LCAmLnN1Y2Nlc3Mge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplLW5vdGlmaWNhdGlvbigkc2l0ZU5vdGlmaWNhdGlvbi1jb2xvciwgJHNpdGVOb3RpZmljYXRpb24tYmcpO1xuICB9XG4gICYuZXJyb3Ige1xuICAgIEBpbmNsdWRlIGNvbG9yaXplLW5vdGlmaWNhdGlvbigkc2l0ZU5vdGlmaWNhdGlvbi1jb2xvciwgJGNhbnZhc3Mtb3JhbmdlKTtcbiAgfVxuICAmLndhcm5pbmcge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplLW5vdGlmaWNhdGlvbigjNjY2LCAkY2FudmFzcy15ZWxsb3cpO1xuICB9XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjAwMDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG9wYWNpdHk6IDE7XG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLmxhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAubWVzc2FnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG4gIH1cbiAgLmZhLXdhcm5pbmcge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuICAuZmEtY2hlY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmZhLXdhcm5pbmcsIC5mYS1jaGVjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICB9XG4gIC5mYS1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC04cHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgY29sb3I6ICRzaXRlTm90aWZpY2F0aW9uLWNvbG9yO1xuICB9XG4gIGEge1xuICAgIGNvbG9yOiAkY2FudmFzcy15ZWxsb3c7XG4gIH1cbiAgJi5zbGlkZXVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICYuc3VjY2VzcyB7XG4gICAgLmZhLWNoZWNrIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gICAgLmZhLXdhcm5pbmcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgNTYwcHgpIHtcbiAgLnNpdGVOb3RpZmljYXRpb24ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG59IiwKCQkiLm5vdEdyYW50ZWQge1xuICBvcGFjaXR5OiAuMztcbn1cblxuLmJhZGdlLW1lc3NhZ2VzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZCAqIDEuNTtcbn1cblxuLmJhZGdlLWRldGFpbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRlcmdyYXk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDdweDtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHBhZGRpbmc6IDBweDtcblxuXG4gIC50aWVyLXJvdyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgLnRpZXItYnV0dG9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB3aGl0ZTtcblxuICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICRjYW52YXNzLXB1cnBsZTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtb2YtdHlwZShuKzIpe1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjYW52YXNzLWxpZ2h0ZXJncmF5O1xuICAgICAgfVxuXG4gICAgICAudGllci1idXR0b24taWNvbiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5iYWRnZS1kYXNoYm9hcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogN3B4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogN3B4O1xuICBib3gtc2hhZG93OiAwIDJweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgLmJhZGdlLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuYmFkZ2UtaWNvbiB7XG4gICAgd2lkdGg6IDcwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZC8yO1xuICB9XG5cbiAgLmJhZGdlLWluZm8ge1xuICAgIHBhZGRpbmc6ICRwYWQ7XG5cbiAgICAuYmFkZ2UtdGl0bGUge1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgfVxuXG4gIH1cblxuICAudGllciB7XG4gICAgd2lkdGg6IDIwLjIlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgICYubm8tYmFkZ2VzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAudGllci1pY29uIHtcbiAgICAgICAgd2lkdGg6IDIzJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGllci1jb250YWluZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRlcmdyYXk7XG4gICAgfVxuXG4gICAgLnRpZXItaWNvbiB7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhZC8yO1xuICAgIH1cblxuICAgIC50aWVyLWluZm8ge1xuICAgICAgcGFkZGluZzogJHBhZDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAudGllci1jb250YWluZXIsIC5iYWRnZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm1vYmlsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCA4MDBweCl7XG4gIC5kZXNrdG9wLWNvbnRhaW5lciB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgIH1cbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtYXQoZmFsc2UsIDYwMHB4KXtcbiAgLmRlc2t0b3AtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2JpbGUtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY2FudmFzcy1saWdodGVyZ3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgcGFkZGluZzogMHB4O1xuXG4gICAgLm1vYmlsZS1iYWRnZS1oZWFkZXIubmctaGlkZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5iYWRnZS1yb3cge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjYW52YXNzLWxpZ2h0ZXJncmF5O1xuICAgIH1cblxuICAgIC5iYWRnZS1yb3ctaWNvbiB7XG4gICAgICB3aWR0aDogMTUlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMjAlO1xuICAgIH1cblxuICAgIC5iYWRnZS1yb3ctdGl0bGUge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBtYXJnaW46IDUlIDAgNSUgNCU7XG5cbiAgICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aWVyLWNvdmVyIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY2FudmFzcy1saWdodGVyZ3JheTtcbiAgICB9XG5cbiAgICAudGllci1jb3ZlciwgLmJhZGdlLXJvdyB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAudGllci1jb3Zlci1idXR0b24ge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1JTtcbiAgICAgIGNvbG9yOiAkY2FudmFzcy1ncmF5O1xuICAgICAgbWFyZ2luOiA3JSA1JSA3JSAwO1xuXG4gICAgICAuZmEtMngge1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aWVyLWNvdmVyLWljb24ge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgIH1cblxuICAgIC50aWVyLWNvdmVyLXRpdGxlIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogNyUgMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtYXQoZmFsc2UsIDQwMHB4KXtcbiAgLm1vYmlsZS1jb250YWluZXIge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAuYmFkZ2Utcm93LWljb24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE3JTtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi5iYWRnZS1tZXNzYWdlcyxcbi5sb3lhbHR5LWxldmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZCAqIDEuNTtcbiAgaDEge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbn1cblxuLmJhZGdlLWRhc2hib2FyZCB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRlcmdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAubm90R3JhbnRlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG5cbiAgJi50aWVyLW5vQmFkZ2VzIHtcbiAgICAuYmFkZ2VzIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAudGllciB7XG4gICAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICAgIC50aWVyLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuYmFkZ2UtY29udGFpbmVyIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuYmFkZ2UtaWNvbiB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZC8yO1xuICB9XG5cbiAgLmJhZGdlLWluZm8ge1xuICAgIHBhZGRpbmc6ICRwYWQ7XG5cbiAgICAuYmFkZ2UtdGl0bGUge1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgfVxuICB9XG5cbiAgJi5uby10aWVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFkICogMS4yNTtcblxuICAgIC5iYWRnZS1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDE1JTtcbiAgICB9XG4gIH1cblxuICAudGllciB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAudGllci1jb250YWluZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRlcmdyYXk7XG4gICAgfVxuXG4gICAgLnRpZXItaWNvbiB7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhZC8yO1xuICAgIH1cblxuICAgIC50aWVyLWluZm8ge1xuICAgICAgcGFkZGluZzogJHBhZDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLm5vLXRpZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGllci1jb250YWluZXIsXG4gIC5iYWRnZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgODAwcHgpIHtcbiAgLmJhZGdlLWRhc2hib2FyZCB7XG4gICAgJi50aWVyLW5vQmFkZ2VzIHtcbiAgICAgIC50aWVyIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgNjAwcHgpIHtcbiAgLmJhZGdlLWRhc2hib2FyZCB7XG4gICAgLmJhZGdlLWNvbnRhaW5lcixcbiAgICAudGllciB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG5cbiAgICAuYmFkZ2UtY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjYW52YXNzLWxpZ2h0ZXJncmF5O1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgIC5pY29uLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIC5iYWRnZS1pY29uIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5iYWRnZS1pbmZvIHtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcblxuICAgICAgICAuYmFkZ2UtdGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBwYWRkaW5nOiA2JSAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmJhZGdlLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGllciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogYXV0bztcblxuICAgICAgLnRpZXItY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgfVxuXG4gICAgICAudGllci1pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnRpZXItbm9CYWRnZXMge1xuICAgICAgLnRpZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuXG4gICAgICAgIC50aWVyLWNvbnRhaW5lciB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpZXItaWNvbiB7XG4gICAgICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCAzNTBweCkge1xuICAuYmFkZ2UtZGFzaGJvYXJkIHtcbiAgICAuYmFkZ2UtaW5mbyB7XG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cbiAgfVxufVxuIiwKCQkiLm1pbmlQb2xsIHtcbiAgKiB7XG4gICAgZm9udDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG4gIC5wZHMtdm90ZWJ1dHRvbi1vdXRlciAucGRzLXZvdGUtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1ibHVlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNhbnZhc3MtYmx1ZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4IDMwcHggIWltcG9ydGFudDtcbiAgfVxuICAucGRzLXF1ZXN0aW9uLXRvcCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206ICRwYWQgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAucGRzLXZvdGVidXR0b24tb3V0ZXJ7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIC5wZHMtbGlua3Mge1xuICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6ICRwYWQ7XG4gICAgfVxuICAgIC5wZHMtdm90ZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICB9XG4gICAgYSB7XG4gICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjYW52YXNzLXB1cnBsZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufSIsCgkJIi53aWRnZXQtb2ZmZXJzLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbSB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlYWVhZWE7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDguNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm94LXNoYWRvdywgdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbSB7XG4gICAgd2lkdGg6IDQ5JTtcbiAgfVxufVxuXG4ud2lkZ2V0LW9mZmVycy1saXN0LWl0ZW06aG92ZXIge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxMHB4IC00cHggcmdiYSgxNTgsIDE1NSwgMTU4LCAxKTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMTBweCAtNHB4IHJnYmEoMTU4LCAxNTUsIDE1OCwgMSk7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAxMHB4IC00cHggcmdiYSgxNTgsIDE1NSwgMTU4LCAxKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xufVxuXG4ud2lkZ2V0LW9mZmVycy1saXN0LWl0ZW0tLXN1cnZleSBhLFxuLndpZGdldC1vZmZlcnMtbGlzdC1pdGVtLS1vZmZlciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ud2lkZ2V0LW9mZmVycy1saXN0LWl0ZW0tLXN1cnZleSBhIHtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjNWFiNDE0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbS0tb2ZmZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbS0tb2ZmZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMDA1JztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MzNGM0YztcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XG4gIGhlaWdodDogMzhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAzOHB4O1xufVxuXG4ud2lkZ2V0LW9mZmVycy1saXN0LWl0ZW0tLW9mZmVyIGEge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNjMzRjNGM7XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbSBpLFxuLndpZGdldC1vZmZlcnMtbGlzdC1pdGVtIHN2ZyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cblxuLndpZGdldC1vZmZlcnMtbGlzdC1pdGVtIGkgc3ZnIHtcbiAgd2lkdGg6IDFyZW07XG4gIHRvcDogMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbSBhIHtcbiAgY29sb3I6IGluaXRpYWw7IC8qIExpbmtzIGluaGVyaXQgYSBkaWZmZXJlbnQgY29sb3IgLS0gb3ZlcnJpZGluZyB0aGF0ICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbS1mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VhZWFlYTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjVyZW0gMC44cmVtO1xufVxuXG4ud2lkZ2V0LW9mZmVycy1saXN0LWl0ZW0tZm9vdGVyIHNwYW5baWNvbl0ge1xuICB3aWR0aDogMjBweDtcbn1cblxuLndpZGdldC1vZmZlcnMtbGlzdC1pdGVtLWZvb3RlclByb21wdCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjYzM0YzRjO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwLjhyZW07XG59XG5cbi53aWRnZXQtb2ZmZXJzLWxpc3QtaXRlbS1oZWFkZXIgaDQge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4ud2lkZ2V0LW9mZmVycy1saXN0LWl0ZW0taGVhZGVyIGg1IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuLndpZGdldC1vZmZlcnMtbGlzdC1pdGVtLWhlYWRlciBpIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIG1hcmdpbi10b3A6IDAuMTVyZW07IC8qKiBTbGlnaHQgYnVtcCBmb3Igb3B0aWNzIHdpdGggbGFyZ2VyIGhlYWRlciAqKi9cbn1cbiIsCgkJIi53aWRnZXQtcHJvZ3Jlc3Mge1xuICBwYWRkaW5nOiAkcGFkKjI7XG4gIHBhZGRpbmctdG9wOiAkcGFkKjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaDMge1xuICAgIG1hcmdpbi10b3A6ICRwYWQqMjtcbiAgfVxuICBwIHtcbiAgICBtYXJnaW4tdG9wOiAkcGFkO1xuICB9XG4gIC5idXR0b24tZ3JlZW4ge1xuICAgIG1hcmdpbi10b3A6ICRwYWQ7XG4gIH1cbn1cbi53aWRnZXQtcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgd2lkdGg6IDcwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6ICRwYWQvMjtcbiAgbWluLWhlaWdodDogMTIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoIzAwMCwgLjIpO1xuICAucmFkaWFsLXByb2dyZXNzIHtcbiAgICAucmFkaWFsLXByb2dyZXNzLWNvdmVyIHtcbiAgICAgIHN0cm9rZTogJGNhbnZhc3MtbGlnaHRCbHVlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgICB9XG4gICAgLnJhZGlhbC1wcm9ncmVzcy1iYWNrZ3JvdW5kIHtcbiAgICAgIHN0cm9rZTogJGNhbnZhc3MtYmx1ZTtcbiAgICB9XG4gICAgLnJhZGlhbC1wcm9ncmVzcy1jZW50ZXIge1xuICAgICAgZmlsbDogI2ZmZjtcbiAgICB9XG4gIH1cbn0iLAoJCSJAaW1wb3J0IFwiLi4vY29uZmlnXCI7XG5cbi53aWRnZXQtcHJvZmlsZXItcHJvZ3Jlc3Mge1xuICBwYWRkaW5nOiAkcGFkKjI7XG4gIHBhZGRpbmctdG9wOiAkcGFkKjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaDMge1xuICAgIG1hcmdpbi10b3A6ICRwYWQqMjtcbiAgfVxuICBwIHtcbiAgICBtYXJnaW4tdG9wOiAkcGFkO1xuICB9XG4gIC5idXR0b24tZ3JlZW4ge1xuICAgIG1hcmdpbi10b3A6ICRwYWQ7XG4gIH1cbn1cbi53aWRnZXQtcHJvZmlsZXItc2VsZWN0UHJvZmlsZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndpZGdldC1wcm9maWxlci1wcm9ncmVzcy1jb250YWluZXIge1xuICB3aWR0aDogNzAlO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZmVmZWY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogJHBhZC8yO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgjMDAwLCAuMik7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgLnJhZGlhbC1wcm9ncmVzcyB7XG4gICAgLnJhZGlhbC1wcm9ncmVzcy1jb3ZlciB7XG4gICAgICBzdHJva2U6ICRjYW52YXNzLWxpZ2h0Qmx1ZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gICAgfVxuICAgIC5yYWRpYWwtcHJvZ3Jlc3MtYmFja2dyb3VuZCB7XG4gICAgICBzdHJva2U6ICRjYW52YXNzLWJsdWU7XG4gICAgfVxuICAgIC5yYWRpYWwtcHJvZ3Jlc3MtY2VudGVyIHtcbiAgICAgIGZpbGw6ICNmZmY7XG4gICAgfVxuICB9XG59XG5cblxuLndpZGdldC1wcm9maWxlci1wcm9ncmVzcyB7XG4gIEBpbmNsdWRlIGhlbHBlcnMtY2xlYXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjYW52YXNzLWxpZ2h0Z3JheTtcbn1cbi53aWRnZXQtcHJvZmlsZXItcHJvZ3Jlc3Mtbm90aWNlIHtcbiAgbWFyZ2luLWxlZnQ6IDMzMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkKjI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIEBleHRlbmQgJXZlcnRpY2FsbHlDZW50ZXI7XG59XG4ud2lkZ2V0LXByb2ZpbGVyLXByb2ZpbGVycyB7XG4gIG1hcmdpbjogMCAkcGFkO1xuICBtYXJnaW4tYm90dG9tOiAkcGFkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIGhlbHBlcnMtY2xlYXI7XG4gICYuY29uc2VudCB7XG4gICAgbWFyZ2luOiAwIDI1cHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICB9XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYmFja2dyb3VuZDogJGNhbnZhc3MtbGlnaHRncmF5O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMzE1cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyAjeyRwYWR9KTtcbiAgfVxufVxuLndpZGdldC1wcm9maWxlci1wcm9maWxlcnMtbGlzdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgIHBhZGRpbmc6IDAgMCAwIDQ1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6ICRjYW52YXNzLWRlZmF1bHQtdGV4dDtcbiAgICAmLmluY29tcGxldGU6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjtcbiAgICB9XG4gICAgJi5hY3RpdmUsICYuYWN0aXZlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjYW52YXNzLXB1cnBsZTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgLmljb24gLmJhZGdlIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkY2FudmFzcy1kZWZhdWx0LXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogN3B4O1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xOXB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgIC5iYWRnZSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbnZhc3MtcHVycGxlO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG4gIC5kZXNjIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZzogN3B4IDA7XG4gIH1cbiAgLmZhLWNoZWNrIHtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGEuY29tcGxldGVkIHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICAuZmEtY2hlY2sge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4ud2lkZ2V0LXByb2ZpbGVyLXByb2ZpbGVycy1wcm9maWxlciB7XG4gIGJveC1zaXppbmc6IGluaXRpYWw7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDM2NXB4KTtcbiAgcGFkZGluZzogJHBhZDtcbiAgLnByb2dyZXNzLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAkcGFkKjI7XG4gIH1cbiAgJi5jb25zZW50IHtcbiAgICBmbG9hdDogaW5pdGlhbDtcbiAgICB3aWR0aDogaW5pdGlhbDtcbiAgfSBcbn1cblxuLmNvbnNlbnQge1xuICAucGFyYW1ldGVyLXJlbmRlcmVkIHtcbiAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIH0gXG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtYXQoZmFsc2UsIDg1MHB4KSB7XG4gIC53aWRnZXQtcHJvZmlsZXItc2VsZWN0UHJvZmlsZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAgJHBhZDtcbiAgICBvcmRlcjogMjtcbiAgICBtYXJnaW4tdG9wOiAkcGFkO1xuICB9XG4gIC53aWRnZXQtcHJvZmlsZXItcHJvZmlsZXJzIHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC53aWRnZXQtcHJvZmlsZXItcHJvZmlsZXJzLWxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9yZGVyOiAzO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAud2lkZ2V0LXByb2ZpbGVyLXByb2ZpbGVycy1wcm9maWxlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLndpZGdldC1wcm9maWxlci1wcm9ncmVzcyB7XG4gICAgcGFkZGluZzogJHBhZDtcbiAgfVxuICAud2lkZ2V0LXByb2ZpbGVyLXByb2dyZXNzLWNvbnRhaW5lciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG4gIC53aWRnZXQtcHJvZmlsZXItcHJvZ3Jlc3Mtbm90aWNlIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIHJlbW92ZVZlcnRpY2FsbHlDZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6ICRwYWQqMjtcbiAgfVxuICAud2lkZ2V0LXByb2ZpbGVyLXByb2ZpbGVyczpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn0iLAoJCSIkcmFkaWFsLXByb2dyZXNzLWJhY2tncm91bmQ6ICRjYW52YXNzLWJsdWU7XG4kcmFkaWFsLXByb2dyZXNzLWNvdmVyOiAkY2FudmFzcy1kYXJrYmx1ZTtcblxuQGltcG9ydCBcIi4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3JhZGlhbFByb2dyZXNzL3JhZGlhbFByb2dyZXNzXCI7IiwKCQkiLnJhZGlhbC1wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yYWRpYWwtcHJvZ3Jlc3MtcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xufVxuLnJhZGlhbC1wcm9ncmVzcy1wZXJjZW50YWdlIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5yYWRpYWwtcHJvZ3Jlc3MtZXh0cmEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLnJhZGlhbC1wcm9ncmVzcy1zdmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG4gIGNpcmNsZSB7XG4gICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMC4xZGVnKTsgLy8gdG8gZml4IEZpcmVmb3hcbiAgfVxufVxuLnJhZGlhbC1wcm9ncmVzcy1iYWNrZ3JvdW5kIHtcbiAgc3Ryb2tlOiAkcmFkaWFsLXByb2dyZXNzLWJhY2tncm91bmQ7XG59XG4ucmFkaWFsLXByb2dyZXNzLWNvdmVyIHtcbiAgc3Ryb2tlOiAkcmFkaWFsLXByb2dyZXNzLWNvdmVyO1xufVxuLnJhZGlhbC1wcm9ncmVzcy1jZW50ZXIge1xuICBmaWxsOiAjZmZmO1xufVxuLnJhZGlhbC1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn0iLAoJCSIud2lkZ2V0LXN1cnZleUhpc3Rvcnkge1xuICAud2lkZ2V0Q29udGFpbmVyLXdpZGdldC1jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtJHBhZDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0kcGFkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhZDtcbiAgfVxuICAudGFibGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogJHBhZDtcbiAgfVxuICB0ZDpsYXN0LWNoaWxkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAuc3RhY2stbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi53aWRnZXQtc3VydmV5SGlzdG9yeS1ub0hpc3RvcnlGb3VuZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6ICRwYWQ7XG59XG4iLAoJCSIud2lkZ2V0LXN1cnZleXMgLndpZGdldENvbnRhaW5lci13aWRnZXQtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLndpZGdldC1zdXJ2ZXlzLXN1cnZleSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2FudmFzcy1saWdodGdyYXk7XG4gIG1hcmdpbi1sZWZ0OiAtJHBhZDtcbiAgbWFyZ2luLXJpZ2h0OiAtJHBhZDtcbiAgcGFkZGluZzogJHBhZDtcbiAgcGFkZGluZy10b3A6ICRwYWQvMjtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQvMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1saWdodGdyYXk7XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG59XG4ud2lkZ2V0LXN1cnZleXMtaW50ZXJ2aWV3IHtcbiAgQGV4dGVuZCAldmVydGljYWxseUNlbnRlcjtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRjYW52YXNzLWJsdWU7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xufVxuLndpZGdldC1zdXJ2ZXlzLWNvbnRhaW5lciB7XG4gIEBleHRlbmQgJXZlcnRpY2FsbHlDZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuLndpZGdldC1zdXJ2ZXlzLWludGVydmlldy10aW1lIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi53aWRnZXQtc3VydmV5cy1pbnRlcnZpZXctbWludXRlcyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ud2lkZ2V0LXN1cnZleXMtYW1vdW50IHtcbiAgbWFyZ2luLWxlZnQ6ICRwYWQqMztcbn1cbi53aWRnZXQtc3VydmV5cy1yb3cge1xuICBAaW5jbHVkZSBoZWxwZXJzLWNsZWFyO1xuICBtYXJnaW4tYm90dG9tOiAkcGFkO1xuICBtYXJnaW4tbGVmdDogNzBweDtcbiAgcGFkZGluZy10b3A6ICRwYWQvMjtcbiAgLmxhYmVsLCAuZGVzYyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmxhYmVsIHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG59XG4ud2lkZ2V0LXN1cnZleXMtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLndpZGdldC1zdXJ2ZXlzLWxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEzMHB4O1xufVxuLndpZGdldC1zdXJ2ZXlzLW5vU3VydmV5cyB7XG4gIG1hcmdpbi1ib3R0b206ICRwYWQ7XG4gIGJhY2tncm91bmQ6ICRjYW52YXNzLWxpZ2h0Z3JheTtcbiAgcGFkZGluZzogJHBhZCoyICRwYWQ7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLndpZGdldC1zdXJ2ZXlzLWZpbmRTdXJ2ZXkge1xuICBAaW5jbHVkZSBoZWxwZXJzLWNsZWFyO1xuICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1saWdodGdyYXk7XG4gIHBhZGRpbmc6ICRwYWQ7XG4gIG1hcmdpbi10b3A6ICRwYWQ7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIC5kZXNjIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICB9XG4gIFtpY29uXSB7XG4gICAgQGluY2x1ZGUgaWNvbigzNXB4KTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRwYWQ7XG4gICAgZmlsbDogJGNhbnZhc3MtcHVycGxlO1xuICB9XG4gIC5idXR0b24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kLWF0KGZhbHNlLCA2MDBweCkge1xuICAud2lkZ2V0LXN1cnZleXMtaW50ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC53aWRnZXQtc3VydmV5cy1pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC53aWRnZXQtc3VydmV5cy1yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC53aWRnZXQtc3VydmV5cy1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAud2lkZ2V0LXN1cnZleXMtdG9waWMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYWQvMjtcbiAgfVxuICAud2lkZ2V0LXN1cnZleXMtc3RhcnROb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIEBpbmNsdWRlIHZlcnRpY2FsbHlDZW50ZXI7XG4gICAgcmlnaHQ6ICRwYWQ7XG4gIH1cbn1cbiIsCgkJIi53aWRnZXRDb250YWluZXIge1xuICBtYXJnaW46ICRwYWQqMiAwO1xuICBAaW5jbHVkZSBoZWxwZXJzLWNsZWFyO1xuICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbn1cbi53aWRnZXRDb250YWluZXItd2lkZ2V0IHtcbiAgQGV4dGVuZCAlYm94LXdoaXRlO1xuICBAZXh0ZW5kICVib3gtc2hhZG93O1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgcGFkZGluZzogMDtcbiAgQGluY2x1ZGUgaGVscGVycy1jbGVhcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuLndpZGdldENvbnRhaW5lci13aWRnZXQtMTAwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ud2lkZ2V0Q29udGFpbmVyLXdpZGdldC01MCB7XG4gIHdpZHRoOiBjYWxjKDUwJSAtICN7JHBhZH07XG59XG4ud2lkZ2V0Q29udGFpbmVyLXdpZGdldC02MCB7XG4gIHdpZHRoOiBjYWxjKDYwJSAtICN7JHBhZH0pO1xufVxuLndpZGdldENvbnRhaW5lci13aWRnZXQtNDAge1xuICB3aWR0aDogY2FsYyg0MCUgLSAjeyRwYWR9KTtcbn1cbi53aWRnZXRDb250YWluZXItdHdvIHtcbiAgLndpZGdldENvbnRhaW5lci13aWRnZXQ6Zmlyc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogJHBhZCoyO1xuICB9XG4gIC53aWRnZXRDb250YWluZXItd2lkZ2V0Omxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuLndpZGdldENvbnRhaW5lci13aWRnZXQtdGl0bGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRncmF5O1xuICBwYWRkaW5nOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLndpZGdldENvbnRhaW5lci13aWRnZXQtY29udGVudCB7XG4gIG1hcmdpbi10b3A6ICRwYWQ7XG4gIHBhZGRpbmc6ICRwYWQ7XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtYXQoZmFsc2UsIDk4MHB4KSB7XG4gIC53aWRnZXRDb250YWluZXItd2lkZ2V0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFkO1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLW1vYmlsZSkge1xuICAud2lkZ2V0Q29udGFpbmVyLXdpZGdldC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG59IiwKCQkiLmNvbXBvbmVudC1tb2RhbCB7XG4gIC5tb2RhbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmNsb3NlIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgfVxuICAuZGlhbG9nLWhlYWRlci1lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2QyMzIyZDtcbiAgfVxuICAuZGlhbG9nLWhlYWRlci13YWl0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI4YmNhO1xuICB9XG4gIC5kaWFsb2ctaGVhZGVyLW5vdGlmeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgfVxuICAuZGlhbG9nLWhlYWRlci1jb25maXJtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xuICB9XG4gIC5kaWFsb2ctaGVhZGVyLWVycm9yIHNwYW4sIC5kaWFsb2ctaGVhZGVyLWVycm9yIGg0LFxuICAuZGlhbG9nLWhlYWRlci13YWl0IHNwYW4sIC5kaWFsb2ctaGVhZGVyLXdhaXQgaDQsXG4gIC5kaWFsb2ctaGVhZGVyLWNvbmZpcm0gc3BhbiwgLmRpYWxvZy1oZWFkZXItY29uZmlybSBoNCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gIC5tb2RhbC10aXRsZSAuZmEge1xuICAgIG1hcmdpbi1yaWdodDogJHBhZDtcbiAgfVxuICAmLm5vVGl0bGVBbmRGb290ZXIge1xuICAgIC5tb2RhbC1mb290ZXIsIC5tb2RhbC10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAubW9kYWwtYm9keSB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gICAgLm1vZGFsLWhlYWRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuICAmLm5vVGl0bGUge1xuICAgIC5tb2RhbC10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAubW9kYWwtYm9keSB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gICAgLm1vZGFsLWhlYWRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwKCQkiJWhlYWRlci1kcm9wZG93bk1lbnUge1xuICBAZXh0ZW5kICVib3gtd2hpdGU7XG4gIEBleHRlbmQgJWJveC1zaGFkb3c7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIHotaW5kZXg6IC0xO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogLTUwMDBweDtcbiAgYm9yZGVyOiAycHggc29saWQgJGNhbnZhc3MtbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbiAgd2lkdGg6IDI1MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5oZWFkZXIge1xuICAuc3VydmV5TGluay5ub3RpZmljYXRpb24tYnViYmxlIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcblxuICAgICYudmlzaWJsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIFtpbWFnZT0nYXJyb3ctZG93biddIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICBbaW1hZ2U9J2Fycm93LXVwJ10ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuaGVhZGVyLWFjY291bnRJbmZvLWFjY291bnQtbWVudSB7XG4gICAgQGV4dGVuZCAlaGVhZGVyLWRyb3Bkb3duTWVudTtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAtMjAwMHB4O1xuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRncmF5O1xuICAgICAgcGFkZGluZzogJHBhZDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkY2FudmFzcy1kZWZhdWx0LXRleHQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhbnZhc3MtcHVycGxlO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICAgW2ltYWdlXSB7XG4gICAgICAgICAgZmlsbDogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUsXG4gICAgICAmLmFjdGl2ZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBjb2xvcjogJGNhbnZhc3MtcHVycGxlO1xuXG4gICAgICAgIFtpbWFnZV0ge1xuICAgICAgICAgIGZpbGw6ICRjYW52YXNzLXB1cnBsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIFtpbWFnZV0ge1xuICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRwYWQvMjtcbiAgICAgIHN0cm9rZS1jb2xvcjogYmxhY2s7XG4gICAgfVxuICB9XG59XG4uaGVhZGVyLXN1cnZleU5vdGlmaWNhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDAgJHBhZDtcbiAgei1pbmRleDogMTA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAyNXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBbaW1hZ2U9J3N1cnZleSddIHtcbiAgICBAaW5jbHVkZSBpY29uKDI1cHgpO1xuICAgIGZpbGw6IHdoaXRlO1xuICAgIEBleHRlbmQgJXZlcnRpY2FsbHlDZW50ZXI7XG4gIH1cbiAgLm5vdGlmaWNhdGlvbi1idWJibGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDdweDtcbiAgICByaWdodDogN3B4O1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG59XG4uaGVhZGVyLWFjY291bnRJbmZvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgQGluY2x1ZGUgaGVscGVycy1jbGVhcjtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDAgJHBhZC8yO1xuICBtaW4td2lkdGg6IDUwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICRjYW52YXNzLWxpZ2h0Z3JheTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0kcGFkLzI7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IC01cHg7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1saWdodGdyYXk7XG4gICAgd2lkdGg6IDFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtJHBhZC8yO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogLTVweDtcbiAgfVxuICAubm90aWZpY2F0aW9uLWJ1YmJsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjhweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAmLnZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbiAgPiBhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGhlaWdodDogNjRweDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAkY2FudmFzcy1wdXJwbGU7XG4gICAgfVxuICB9XG4gIFtpY29uXSB7XG4gICAgQGluY2x1ZGUgaWNvbigyMHB4KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgfVxuICAmLm9wZW4ge1xuICAgID4gYSB7XG4gICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgJGNhbnZhc3MtcHVycGxlO1xuICAgIH1cbiAgICAuaGVhZGVyLWFjY291bnRJbmZvLWNhcnQtbWVudSB7XG4gICAgICBib3gtc2hhZG93OiAwcHggMTJweCAxNHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiA4MHB4O1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51IHtcbiAgQGV4dGVuZCAlaGVhZGVyLWRyb3Bkb3duTWVudTtcbiAgd2lkdGg6IDMwMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAkcGFkO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgQGluY2x1ZGUgaGVscGVycy1hcnJvdygkY29sb3I6IHdoaXRlLCAkYm9yZGVyQ29sb3I6ICRjYW52YXNzLWxpZ2h0Z3JheSwgJHNpemU6IDE4cHgsICR0b3A6IC0xOHB4LCAkbGVmdDogYXV0bywgJHJpZ2h0OiAxNXB4LCAkYm90dG9tOiBhdXRvKTtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNhbnZhc3MtbGlnaHRncmF5O1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZC8yO1xuICBtYXJnaW4tYm90dG9tOiAkcGFkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tbGVmdDogLSRwYWQ7XG4gIG1hcmdpbi1yaWdodDogLSRwYWQ7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LXF1YW50aXR5IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogJHBhZDtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LXRvdGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nOiAkcGFkIDA7XG59XG4uaGVhZGVyLWFjY291bnRJbmZvLWNhcnQtbWVudS10b3RhbCAudG90YWwge1xuICBtYXJnaW4tYm90dG9tOiAkcGFkLzI7XG59XG4uaGVhZGVyLWFjY291bnRJbmZvLWNhcnQtbWVudS1jaGVja291dCxcbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LWNsb3NlIHtcbiAgbWFyZ2luLXRvcDogJHBhZC8yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LWl0ZW1zIHtcbiAgQGluY2x1ZGUgaGVscGVycy1jbGVhcjtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQvMjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjYW52YXNzLWdyYXk7XG4gIG1hcmdpbi1ib3R0b206ICRwYWQvMjtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LWl0ZW1zLWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAkcGFkLzI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgaGVscGVycy1jbGVhcjtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LWl0ZW1zLWl0ZW0gc2VsZWN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA3MHB4O1xufVxuLmhlYWRlci1hY2NvdW50SW5mby1jYXJ0LW1lbnUtaXRlbXMtaXRlbS1kZXRhaWxzIHtcbiAgbWFyZ2luLWxlZnQ6IDcwcHggKyAkcGFkO1xuICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG59XG4uaGVhZGVyLWFjY291bnRJbmZvLWNhcnQtbWVudS1pdGVtcy1pdGVtLWRldGFpbHMgW2ljb25dIHtcbiAgQGluY2x1ZGUgaWNvbigxNnB4KTtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tY2FydC1tZW51LWl0ZW1zLWl0ZW0tZGV0YWlscyAubmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uaGVhZGVyLWFjY291bnRJbmZvLWNhcnQtbWVudS1pdGVtcy1pdGVtLWRldGFpbHMgLmNvc3Qge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhlYWRlci1hY2NvdW50SW5mby1jYXJ0LW1lbnUtaXRlbXMtaXRlbS1kZXRhaWxzIC5yZW1vdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAkcGFkO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tYmFsYW5jZSB7XG4gIHBhZGRpbmc6IDAgJHBhZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWluLXdpZHRoOiA1MHB4O1xuICBtaW4taGVpZ2h0OiA2NHB4O1xuICBtYXgtd2lkdGg6IDE0MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICRjYW52YXNzLWxpZ2h0Z3JheTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0kcGFkLzI7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IC01cHg7XG4gIH1cblxuICAuaGVhZGVyLWFjY291bnRJbmZvLWJhbGFuY2UtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuXG4uaGVhZGVyLWFjY291bnRJbmZvLWFjY291bnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwICRwYWQ7XG4gIG1pbi13aWR0aDogMTAwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICRjYW52YXNzLWxpZ2h0Z3JheTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0kcGFkLzI7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IC01cHg7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkY2FudmFzcy1saWdodGdyYXk7XG4gICAgd2lkdGg6IDFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtJHBhZC8yO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogLTVweDtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgJGNhbnZhc3MtcHVycGxlO1xuICB9XG59XG5cbi5oZWFkZXItYWNjb3VudEluZm8tYWNjb3VudC1uYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogOTBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGNvbG9yOiAkY2FudmFzcy1wdXJwbGU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZy10b3A6ICRwYWQvMjtcbn1cbi5oZWFkZXItYWNjb3VudEluZm8tYWNjb3VudC1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAkY2FudmFzcy1kZWZhdWx0LXRleHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgW2ltYWdlPSdhcnJvdy1kb3duJ10sXG4gIFtpbWFnZT0nYXJyb3ctdXAnXSB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICB9XG59XG5cbmJvZHkuYWNjb3VudCB7XG4gIC5oZWFkZXItYWNjb3VudEluZm8tYWNjb3VudCxcbiAgJjpob3ZlciAuaGVhZGVyLWFjY291bnRJbmZvLWFjY291bnQge1xuICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAkY2FudmFzcy1wdXJwbGU7XG4gIH1cbn1cblxuLmhlYWRlci1hY2NvdW50SW5mby5vcGVuIHtcbiAgLmhlYWRlci1hY2NvdW50SW5mby1hY2NvdW50LFxuICAmOmhvdmVyIC5oZWFkZXItYWNjb3VudEluZm8tYWNjb3VudCB7XG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG4gIFtpbWFnZT0nYXJyb3ctZG93biddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIFtpbWFnZT0nYXJyb3ctdXAnXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5oZWFkZXItYWNjb3VudEluZm8tYWNjb3VudC1tZW51IHtcbiAgICBib3gtc2hhZG93OiAwcHggMTJweCAxNHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAkY2FudmFzcy1wdXJwbGU7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdG9wOiA4MHB4O1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtYXQoZmFsc2UsIDEwMjBweCkge1xuICAuaGVhZGVyIHtcbiAgICAuaGVhZGVyLWNvbCB7XG4gICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC1hdChmYWxzZSwgJGNhbnZhc3MtdGhyZXNob2xkLXRhYmxldCkge1xuICAuaGVhZGVyIHtcbiAgICAuaGVhZGVyLWFjY291bnRJbmZvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5oZWFkZXItc3VydmV5Tm90aWZpY2F0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuaGVhZGVyLWNvbCB7XG4gICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIKCV0sCgkibmFtZXMiOiBbXSwKCSJtYXBwaW5ncyI6ICJBSUVBLGdDQUFnQztBMEZxQmhDLEFQUkEsVU9RVSxFRWhCVixvQkFBb0IsQ0FhbEIsR0FBRyxFQ09MLG9CQUFvQixFUXdCcEIsZ0NBQWdDLEVJakNoQyx5QkFBeUIsRUFTekIseUJBQXlCLEVHMER6QiwwQkFBMEIsRUFheEIsQUFBQSxLQUFDLENBQU0sUUFBUSxBQUFkLEV6Qm5GZTtFQWRoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixTQUFTLEVBQUUsZ0JBQWdCO0VBQzNCLEdBQUcsRUFBRSxHQUFHLEdBY1Q7O0FDakJELDBDQUEwQztBQUMxQzswQ0FDMEM7QXNCSzFDLEFyQlBBLHVCcUJPdUIsRUVXdkIsT0FBTyxDQXdCTCxnQ0FBZ0MsRUErSWxDLDZCQUE2QixDdkJ6THhCO0VBQ0gsYUFBYSxFQUFFLEdBQUc7RUFDbEIsT0FBTyxFeEZrREgsSUFBSSxHd0ZqRFQ7O0FxQklELEFyQkZBLHVCcUJFdUIsRUVXdkIsT0FBTyxDQXdCTCxnQ0FBZ0MsRUErSWxDLDZCQUE2QixDdkJwTGpCO0VBQ1YsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsR0FDN0M7O0FxQkFELEFyQkdBLHVCcUJIdUIsRUVX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 */