/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./data/www/templates/asgard/ispace.cz/sass/offers.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Retrieves the next smaller breakpoint from the given breakpoint.
 *
 * @param {String} $breakpoint - The breakpoint for which to find the next smaller breakpoint.
 * @return {String|null} - The next smaller breakpoint, or null if no smaller breakpoint is available.
 */
/**
 * Retrieves the next larger breakpoint from the $grid-breakpoints map.
 *
 * @function get-bigger-breakpoint
 * @param {String} $breakpoint - The current breakpoint to find the next larger one for.
 * @return {String | null} - The next larger breakpoint or null if the current breakpoint is the largest or not found.
 */
/**
 * Reset iSpace custom form input styles to be able to design special inputs more easily
 */
/**
 * Styles to hide the scrollbar but still allow scrolling
 */
.time-limited-offers__title {
  margin-block-end: 1rem;
  font-size: 2rem;
  font-weight: normal;
  font-variation-settings: "wght" 600;
}
.time-limited-offers__offer-details {
  align-self: center;
  display: flex;
  text-align: center;
  line-height: 40px;
  background-color: #007dba;
  color: #fff;
  border-radius: 8px 8px 0 0;
  flex-direction: column;
}
.time-limited-offers__offer-details * {
  word-break: normal;
}
.time-limited-offers__offer-details > * {
  padding-inline: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.time-limited-offers__offer-details > *:where(:first-child) {
  padding-block: 2rem 1rem;
}
.time-limited-offers__offer-details > *:where(:last-child) {
  padding-block: 1rem 2rem;
  border-block-start: 2px dashed;
}
.time-limited-offers__offer-details > *:where(:first-child:last-child) {
  border: none;
  padding-block: 2rem;
}
.time-limited-offers__offer-details *:where(:not(.time-limited-offers__offer-time-remaining-heading)) {
  display: inline-block;
}
@media (min-width: 992px) {
  .time-limited-offers__offer-details *:where(:not(.time-limited-offers__offer-time-remaining-heading)) {
    display: flex;
    font-size: 34px;
    font-weight: normal;
    font-variation-settings: "wght" 900;
  }
}
.time-limited-offers__offer-time-remaining-heading {
  font-size: 14px;
  font-weight: normal;
  font-variation-settings: "wght" 500;
  font-variant: tabular-nums;
}
@media (min-width: 992px) {
  .time-limited-offers__offer-time-remaining-heading {
    font-size: 28px;
    font-variation-settings: "wght" 700;
  }
}
.time-limited-offers__offer-time-remaining-value {
  font-variant: tabular-nums;
}
.time-limited-offers--xl-wide .time-limited-offers__offer-details *:where(:not(.time-limited-offers__offer-time-remaining-heading)) {
  display: flex;
  font-size: 34px;
  font-weight: normal;
  font-variation-settings: "wght" 900;
}
.time-limited-offers--xl-wide .time-limited-offers__offer-time-remaining-heading {
  font-size: 28px;
  font-variation-settings: "wght" 700;
}
@media (min-width: 1200px) {
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card {
    --thumbnail-width: 200px;
    --flag-font-size: 1.2rem;
    background-color: #fff;
    box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.07);
    border-radius: 8px;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__inner {
    padding: 3rem;
    gap: 1rem;
  }
}
@media (min-width: 1200px) and (min-width: 1366px) {
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card {
    --thumbnail-width: 280px;
    --flag-font-size: 1.6rem;
  }
}
@media (min-width: 1200px) and (min-width: 1200px) {
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__inner {
    display: grid;
    grid-template-columns: var(--thumbnail-width) 1fr auto;
    grid-auto-rows: auto;
    min-height: 24rem;
    align-items: center;
    padding: 3rem 4rem 3rem 0;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__inner::before {
    content: "";
    grid-row: 1;
    grid-column: 1/-1;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__primary, .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__secondary {
    display: contents;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__secondary-inner {
    display: contents;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__thumbnail {
    position: absolute;
    width: var(--thumbnail-width);
    height: 100%;
    left: 0;
    top: 0;
    padding: 30px;
    grid-area: auto;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__thumbnail img {
    max-width: 240px;
    max-height: 240px;
    inset: 0;
    margin: auto;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__variants {
    grid-column: 1;
    grid-row: 6;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__heading {
    grid-column: 2/-1;
    grid-row: 2;
    font-size: 2.2rem;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__perex {
    grid-column: 2/-1;
    grid-row: 3;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__parameters {
    grid-column: 2/-1;
    grid-row: 4;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__availability {
    grid-column: 2/-1;
    grid-row: 5;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__price {
    grid-column: 2;
    grid-row: 6;
    margin: 0;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__price .card-price {
    justify-content: start;
    gap: 0 1.6rem;
    text-align: left;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__price .card-price__full {
    font-size: 2.2rem;
    color: #000;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__price .card-price__discount, .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__price .card-price__saving {
    font-size: 1.6rem;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__flags {
    position: absolute;
    top: -10px;
    right: -13px;
    left: auto;
    place-self: start end;
    gap: 0.3rem;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__flags [class*=__item] {
    border-radius: 8px;
    padding: 0.22em 0.63em;
    text-align: center;
    font-size: var(--flag-font-size);
    line-height: 1.2;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__flags [class*=__item] [class*=__text] {
    font-weight: normal;
    font-variation-settings: "wght" 400;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__add {
    grid-column: 3;
    grid-row: 6;
    padding: 0;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-wrapper .product-card__add-link {
    min-width: 205px;
  }
}
@media (min-width: 1200px) {
  .time-limited-offers--xl-wide .time-limited-offers__offer-details {
    flex-direction: row;
    line-height: 50px;
    background-color: transparent;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-details > * {
    background-color: #007dba;
    color: #fff;
    padding-block: clamp(2rem, 3vw, 4.75rem);
    gap: 0.5rem;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-details > *:where(:last-child) {
    border-block-start: 0;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-details *:where(:not(.time-limited-offers__offer-time-remaining-heading)) {
    font-size: 44px;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-percentage-saving {
    --inverted-border-gradient: #0000 98%, #000;
    --inverted-border-radius: 8px;
    --inverted-border-radius-tl: 0px;
    --inverted-border-radius-tr: 8px;
    --inverted-border-radius-br: 8px;
    --inverted-border-radius-bl: 0px;
    mask: radial-gradient(var(--inverted-border-radius-tl) at 0 0, var(--inverted-border-gradient)) 0 0, radial-gradient(var(--inverted-border-radius-tr) at 100% 0, var(--inverted-border-gradient)) 100% 0, radial-gradient(var(--inverted-border-radius-bl) at 0 100%, var(--inverted-border-gradient)) 0 100%, radial-gradient(var(--inverted-border-radius-br) at 100% 100%, var(--inverted-border-gradient)) 100% 100%;
    mask-repeat: no-repeat;
    mask-size: 51% 51%;
    border-radius: 8px 0 0 8px;
    flex: 1 1 auto;
  }
  @supports (background: -webkit-named-image(i)) {
    .time-limited-offers--xl-wide .time-limited-offers__offer-percentage-saving {
      mask: none;
    }
  }
  @supports (offset-path: shape(from top left, curve to 50% 50% with 25% 100%)) {
    .time-limited-offers--xl-wide .time-limited-offers__offer-percentage-saving {
      mask: none;
      clip-path: shape(from 0 var(--inverted-border-radius-tl), arc by var(--inverted-border-radius-tl) calc(var(--inverted-border-radius-tl) * -1) of var(--inverted-border-radius-tl), line to calc(100% - var(--inverted-border-radius-tr)) 0, arc by var(--inverted-border-radius-tr) var(--inverted-border-radius-tr) of var(--inverted-border-radius-tr), line to 100% calc(100% - var(--inverted-border-radius-br)), arc by calc(var(--inverted-border-radius-br) * -1) var(--inverted-border-radius-br) of var(--inverted-border-radius-br), line to var(--inverted-border-radius-bl) 100%, arc by calc(var(--inverted-border-radius-bl) * -1) calc(var(--inverted-border-radius-bl) * -1) of var(--inverted-border-radius-bl), line to 0 var(--inverted-border-radius-tl));
    }
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-time-remaining {
    flex: 1.2 1 auto;
    border-radius: 8px 0 0 8px;
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-time-remaining:where(:not(:first-child)) {
    --inverted-border-gradient: #0000 98%, #000;
    --inverted-border-radius: 8px;
    --inverted-border-radius-tl: 8px;
    --inverted-border-radius-tr: 0px;
    --inverted-border-radius-br: 0px;
    --inverted-border-radius-bl: 8px;
    mask: radial-gradient(var(--inverted-border-radius-tl) at 0 0, var(--inverted-border-gradient)) 0 0, radial-gradient(var(--inverted-border-radius-tr) at 100% 0, var(--inverted-border-gradient)) 100% 0, radial-gradient(var(--inverted-border-radius-bl) at 0 100%, var(--inverted-border-gradient)) 0 100%, radial-gradient(var(--inverted-border-radius-br) at 100% 100%, var(--inverted-border-gradient)) 100% 100%;
    mask-repeat: no-repeat;
    mask-size: 51% 51%;
    border-radius: 0;
    border-inline-start: 2px dashed;
  }
  @supports (background: -webkit-named-image(i)) {
    .time-limited-offers--xl-wide .time-limited-offers__offer-time-remaining:where(:not(:first-child)) {
      mask: none;
    }
  }
  @supports (offset-path: shape(from top left, curve to 50% 50% with 25% 100%)) {
    .time-limited-offers--xl-wide .time-limited-offers__offer-time-remaining:where(:not(:first-child)) {
      mask: none;
      clip-path: shape(from 0 var(--inverted-border-radius-tl), arc by var(--inverted-border-radius-tl) calc(var(--inverted-border-radius-tl) * -1) of var(--inverted-border-radius-tl), line to calc(100% - var(--inverted-border-radius-tr)) 0, arc by var(--inverted-border-radius-tr) var(--inverted-border-radius-tr) of var(--inverted-border-radius-tr), line to 100% calc(100% - var(--inverted-border-radius-br)), arc by calc(var(--inverted-border-radius-br) * -1) var(--inverted-border-radius-br) of var(--inverted-border-radius-br), line to var(--inverted-border-radius-bl) 100%, arc by calc(var(--inverted-border-radius-bl) * -1) calc(var(--inverted-border-radius-bl) * -1) of var(--inverted-border-radius-bl), line to 0 var(--inverted-border-radius-tl));
    }
  }
  .time-limited-offers--xl-wide .time-limited-offers__offer-time-remaining-heading {
    font-size: 36px;
  }
}
@media (max-width: 991.98px) {
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .time-limited-offers__offer-time-remaining {
    padding: 0;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .time-limited-offers__offer-time-remaining-heading:first-child:not(:only-child)::after {
    content: ":";
  }
}
.time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__flags {
  left: auto;
  right: 10px;
  top: calc(var(--thumbnail-padding) - 20px);
}
@media (max-width: 991.98px) {
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__flags {
    display: none;
  }
}
.time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__flags [class*=__item] {
  border-radius: 4px;
}
.time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card .card-price {
  text-align: center;
  margin: 0;
  margin-block: 0 !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.3rem;
  justify-content: flex-start;
}
@media (max-width: 991.98px) {
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card {
    background-color: #fff;
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
    border-radius: 0 0 8px 8px;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__perex {
    display: none;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__flags {
    left: auto;
    right: 0;
    top: calc(var(--thumbnail-padding) - 10px);
    place-self: start;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__flags [class*=__item] {
    border-radius: 8px;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__flags [class*=__text] {
    font-variation-settings: "wght" 500;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__inner {
    display: grid;
    grid-template-columns: 70px 1fr 38px;
    grid-template-rows: min-content min-content;
    padding: 20px 0 20px 10px;
    gap: 10px 20px;
    align-items: center;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__availability {
    display: none;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__primary, .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__secondary, .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__secondary-inner {
    display: contents;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__thumbnail {
    /* stylelint-disable-next-line length-zero-no-unit */
    --thumbnail-padding: 0px;
    grid-row: 1/span 2;
    grid-column: 1;
    height: 70px;
    margin-bottom: 0;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__heading {
    grid-row: 1;
    grid-column: 2;
    font-size: 1.2rem;
    margin-block: auto 0;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__price {
    grid-row: 2;
    grid-column: 2;
    margin-block: 0 auto;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card .card-price {
    justify-content: flex-start;
    gap: 10px 0.5rem;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card .card-price__full {
    font-size: 1.2rem;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card .card-price__discount, .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card .card-price__saving {
    font-size: 1.1rem;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card .card-price__saving {
    line-height: 1;
    background-color: rgba(24, 128, 56, 0.1);
    padding: 4px 6px;
    border-radius: 4px;
    text-transform: lowercase;
  }
  .time-limited-offers:where(:not(.time-limited-offers--xl-wide)) .product-card__add {
    display: none;
  }
}
.category__sidebar .time-limited-offers__slider .embla__viewport {
  overflow: visible;
}
.category__sidebar .time-limited-offers__slider .embla__container {
  gap: 60px;
}
.time-limited-offers__slider .embla__buttons {
  position: relative;
  max-width: max-content;
  margin: 2rem auto 0;
  bottom: initial;
  right: initial;
  box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.06);
}
.time-limited-offers__slider .embla__button {
  display: block;
}
.time-limited-offers .card-price__voucher {
  display: none;
}
.container:has(> .time-limited-offers) {
  overflow-x: clip;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmlzcGFjZS5jei5hc2dhcmQudGltZS1saW1pdGVkLW9mZmVycy5jNGMyODYwMTdhMGQzM2RhZjIxOC5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7O0VBQUE7QUFpQkE7Ozs7OztFQUFBO0FDK1BBOztFQUFBO0FBK0hBOztFQUFBO0FDNVlJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFjUjtBQVZRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVlaO0FBVlk7RUFDSTtBQVloQjtBQVRZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdoQjtBQVRnQjtFQUNJO0FBV3BCO0FBUmdCO0VBQ0k7RUFDQTtBQVVwQjtBQVBnQjtFQUNJO0VBQ0E7QUFTcEI7QUFMWTtFQUNJO0FBT2hCO0FDS0k7RURiUTtJQUlRO0lBQ0E7SUFDQTtJQUNBO0VBUWxCO0FBQ0Y7QUFIWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBS2hCO0FDVEk7RURBUTtJQU9RO0lBQ0E7RUFNbEI7QUFDRjtBQUhZO0VBQ0k7QUFLaEI7QUFJb0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQUZ4QjtBQU9vQjtFQUNJO0VBQ0E7QUFMeEI7QUM1Qkk7RUQwQ2dCO0lBR0k7SUFDQTtFQWJ0QjtFRG5FRTtJQUNJO0lBQ0E7SUFFQTtJQUNBO0lBQ0Esa0JHK0ZnQjtFRjNCdEI7RURsRU07SUFDSTtJQUNBO0VDb0VWO0FBQ0Y7QUM3Q0k7RUZsQ0E7SUFlWTtJQUNBO0VDb0VkO0FBQ0Y7QUNuREk7RUZiUTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQ21FZDtFRGpFYztJQUNJO0lBQ0E7SUFDQTtFQ21FbEI7RUQvRFU7SUFFSTtFQ2dFZDtFRDVEYztJQUNJO0VDOERsQjtFRDFEVTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VDNERkO0VEMURjO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7RUM0RGxCO0VEeERVO0lBQ0k7SUFDQTtFQzBEZDtFRHZEVTtJQUNJO0lBQ0E7SUFDQTtFQ3lEZDtFRHREVTtJQUNJO0lBQ0E7RUN3RGQ7RURyRFU7SUFDSTtJQUNBO0VDdURkO0VEcERVO0lBQ0k7SUFDQTtFQ3NEZDtFRG5EVTtJQUNJO0lBQ0E7SUFDQTtFQ3FEZDtFRG5EYztJQUNJO0lBQ0E7SUFDQTtFQ3FEbEI7RURuRGtCO0lBQ0k7SUFDQTtFQ3FEdEI7RURsRGtCO0lBRUk7RUNtRHRCO0VEOUNVO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VDZ0RkO0VEOUNjO0lBQ0ksa0JHcEJJO0lIcUJKO0lBQ0E7SUFDQTtJQUNBO0VDZ0RsQjtFRDlDa0I7SUFDSTtJQUNBO0VDZ0R0QjtFRDNDVTtJQUNJO0lBQ0E7SUFDQTtFQzZDZDtFRDNDYztJQUNJO0VDNkNsQjtBQUNGO0FDeEpJO0VEaURnQjtJQUNJO0lBQ0E7SUFDQTtFQTBHdEI7RUF4R3NCO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7RUEwRzFCO0VBeEcwQjtJQUNJO0VBMEc5QjtFQXRHc0I7SUFDSTtFQXdHMUI7RUFwR2tCO0lEd0RoQjtJQUNBO0lBaUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsd1pBQ0k7SUFJSjtJQUNBO0lDbEdvQjtJQUNBO0VBNkd0QjtFRFJFO0lDekdnQjtNRDBHWjtJQ1dKO0VBQ0Y7RURORTtJQ2hIZ0I7TURpSFo7TUFDQTtJQ1NKO0VBQ0Y7RUFySGtCO0lBQ0k7SUFDQTtFQXVIdEI7RUFySHNCO0lENkNwQjtJQUNBO0lBaUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsd1pBQ0k7SUFJSjtJQUNBO0lDdkZ3QjtJQUNBO0VBOEgxQjtFRHBDRTtJQzlGb0I7TUQrRmhCO0lDdUNKO0VBQ0Y7RURsQ0U7SUNyR29CO01Ec0doQjtNQUNBO0lDcUNKO0VBQ0Y7RUF0SXNCO0lBQ0k7RUF3STFCO0FBQ0Y7QUNyTkk7RUR3RmdCO0lBQ0k7RUFnSXRCO0VBNUg4QjtJQUNJO0VBOEhsQztBQUNGO0FBckhZO0VBQ0k7RUFDQTtFQUNBO0FBdUhoQjtBQ2xPSTtFRHdHUTtJQU1RO0VBd0hsQjtBQUNGO0FBdEhnQjtFQUNJO0FBd0hwQjtBQXBIWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFzSGhCO0FDcFBJO0VEbUlRO0lBQ0k7SUFDQTtJQUNBO0VBb0hkO0VBbEhjO0lBQ0k7RUFvSGxCO0VBakhjO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7RUFtSGxCO0VBakhrQjtJQUNJLGtCRTdGQTtFRmdOdEI7RUFoSGtCO0lBQ0k7RUFrSHRCO0VBOUdjO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBZ0hsQjtFQTdHYztJQUNJO0VBK0dsQjtFQTVHYztJQUdJO0VBNEdsQjtFQXpHYztJQUNJO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFDQTtFQTBHbEI7RUF2R2M7SUFDSTtJQUNBO0lBQ0E7SUFDQTtFQXlHbEI7RUF0R2M7SUFDSTtJQUNBO0lBQ0E7RUF3R2xCO0VBckdjO0lBQ0k7SUFDQTtFQXVHbEI7RUFyR2tCO0lBQ0k7RUF1R3RCO0VBcEdrQjtJQUVJO0VBcUd0QjtFQWxHa0I7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBb0d0QjtFQWhHYztJQUNJO0VBa0dsQjtBQUNGO0FBMUZnQjtFQUNJO0FBNEZwQjtBQXpGZ0I7RUFDSTtBQTJGcEI7QUF2Rlk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF5RmhCO0FBdEZZO0VBQ0k7QUF3RmhCO0FBbkZJO0VBQ0k7QUFxRlI7QUFoRlE7RUFDSTtBQWtGWixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9pc3BhY2UuY3ovc2Fzcy9hcHAvYWJzdHJhY3RzL19mbnMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2lzcGFjZS5jei9zYXNzL2FwcC9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvaXNwYWNlLmN6L3Nhc3Mvb2ZmZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2lzcGFjZS5jei9zYXNzL190aGVtZS12YXJpYWJsZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOmxpc3QnO1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQgZnJvbSB0aGUgZ2l2ZW4gYnJlYWtwb2ludC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgYnJlYWtwb2ludCBmb3Igd2hpY2ggdG8gZmluZCB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQuXG4gKiBAcmV0dXJuIHtTdHJpbmd8bnVsbH0gLSBUaGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQsIG9yIG51bGwgaWYgbm8gc21hbGxlciBicmVha3BvaW50IGlzIGF2YWlsYWJsZS5cbiAqL1xuQGZ1bmN0aW9uIGdldC1zbWFsbGVyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAka2V5czogbWFwLmtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAgICRpbmRleDogbGlzdC5pbmRleCgka2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXggb3IgJGluZGV4ID09IDEge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgQHJldHVybiBsaXN0Lm50aCgka2V5cywgJGluZGV4IC0gMSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IGZyb20gdGhlICRncmlkLWJyZWFrcG9pbnRzIG1hcC5cbiAqXG4gKiBAZnVuY3Rpb24gZ2V0LWJpZ2dlci1icmVha3BvaW50XG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgY3VycmVudCBicmVha3BvaW50IHRvIGZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZSBmb3IuXG4gKiBAcmV0dXJuIHtTdHJpbmcgfCBudWxsfSAtIFRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IG9yIG51bGwgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyB0aGUgbGFyZ2VzdCBvciBub3QgZm91bmQuXG4gKi9cbkBmdW5jdGlvbiBnZXQtbGFyZ2VyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAka2V5czogbWFwLmtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAgICRpbmRleDogbGlzdC5pbmRleCgka2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXggb3IgJGluZGV4ID09IGxpc3QubGVuZ3RoKCRicmVha3BvaW50KSB7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBAcmV0dXJuIGxpc3QubnRoKCRrZXlzLCAkaW5kZXggKyAxKTtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcblxuLy8gKiBWaXN1YWxzIGZvciBzbWFsbCBibG9ja3Mgd2l0aCBhIGhvdmVyIC8gZm9jdXMtd2l0aGluIGVmZmVjdCBpbmNsdWRlZFxuLy8gKiBUbyBtb2RpZnkgZGVmYXVsdCB2YWx1ZXMsIHlvdSBjb3VsZCB1c2UgQGluY2x1ZGUgc21hbGwtYmxvY2stY29tcG9uZW50KG1hcC5zZXQoJGNvbmZpZywgJ3JhZGl1cycsIDIwcHgpKVxuQG1peGluIHNtYWxsLWJsb2NrLWNvbXBvbmVudChcbiAgICAkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzLFxuICAgICRiYWNrZ3JvdW5kLXN0YXJ0OiBjb2xvci5hZGp1c3QobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWxpZ2h0KSwgJGFscGhhOiAtMSksXG4gICAgJGJhY2tncm91bmQtZW5kOiBjb2xvci5hZGp1c3QobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWxpZ2h0KSwgJGFscGhhOiAwKSxcbiAgICAkYm94LXNoYWRvdy1zdGFydDogMCA0cHggMjBweCAwICMwMDAwMDAxNCxcbiAgICAkYm94LXNoYWRvdy1lbmQ6IDAgNHB4IDRweCAwICMwMDAwMDAxNCxcbiAgICAkdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgbGluZWFyIDAuMTVzLCBib3gtc2hhZG93IGxpbmVhciAwLjE1cydcbikge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtc3RhcnQ7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctc3RhcnQ7XG4gICAgdHJhbnNpdGlvbjogI3skdHJhbnNpdGlvbn07XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtZW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1lbmQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lkZS1jYXJkKCRicmVha3BvaW50OiAneGwnKSB7XG4gICAgJHNtYWxsZXItYnJlYWtwb2ludDogZ2V0LWxhcmdlci1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgICAtLXRodW1ibmFpbC13aWR0aDogMjAwcHg7XG4gICAgICAgIC0tZmxhZy1mb250LXNpemU6IDEuMnJlbTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggMCByZ2IoMCwgMCwgMCwgMC4wNyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgcGFkZGluZzogM3JlbTtcbiAgICAgICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc21hbGxlci1icmVha3BvaW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJHNtYWxsZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIC0tdGh1bWJuYWlsLXdpZHRoOiAyODBweDtcbiAgICAgICAgICAgICAgICAtLWZsYWctZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXRodW1ibmFpbC13aWR0aCkgMWZyIGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjRyZW07XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDRyZW0gM3JlbSAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcHJpbWFyeSxcbiAgICAgICAgICAgICZfX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXRodW1ibmFpbC13aWR0aCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0OiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX192YXJpYW50cyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3BlcmV4IHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wYXJhbWV0ZXJzIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19hdmFpbGFiaWxpdHkge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAuY2FyZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMCAxLjZyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGRhcmspO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZGlzY291bnQsXG4gICAgICAgICAgICAgICAgICAgICZfX3NhdmluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fZmxhZ3Mge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTNweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBsYWNlLXNlbGY6IHN0YXJ0IGVuZDtcbiAgICAgICAgICAgICAgICBnYXA6IDAuM3JlbTtcblxuICAgICAgICAgICAgICAgIFtjbGFzcyo9J19faXRlbSddIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC4yMmVtIDAuNjNlbTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZsYWctZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX3RleHQnXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2FkZCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICYtbGluayB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAqIEFkZCBpbnZlcnRlZCBib3JkZXIgcmFkaXVzIGNvcm5lcnNcbi8vICogbWFzayB2YWx1ZXMgYXJlIGluIHRoZSBvcmRlciB0bCAvIHRyIC8gYnIgLyBibFxuLy8gKiBOb3RlIHRoYXQgYWxsIHVuaXRzIHNob3VsZCBiZSBpbiBweFxuLy8gKiBAcGFyYW0ge2xpc3R9IC0gc3BlY2lmaWMgYm9yZGVyIGNvcm5lcnMgJGNvcm5lcnMgKGFsbHx0bHx0cnxibHxicilcbkBtaXhpbiBpbnZlcnRlZC1ib3JkZXItcmFkaXVzKCRjb3JuZXJzOiAnYWxsJykge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtczogWydhbGwnLCAndGwnLCAndHInLCAnYmwnLCAnYnInLCAndCcsICdyJywgJ2InLCAnbCddO1xuICAgICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICAgICRpbnZlcnRlZC1ib3JkZXItdGw6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci1icjogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItYmw6IDBweDtcblxuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50OiAjMDAwMCA5OCUsICMwMDA7XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzOiAjeyRpbnZlcnRlZC1ib3JkZXItcmFkaXVzfTtcblxuICAgIEBpZiBub3QgbGlzdC5pbmRleCgkdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXMsICRjb3JuZXJzKSB7XG4gICAgICAgIEBlcnJvciBcIiN7JGNvcm5lcnN9IGlzIG5vdCBhIHZhbGlkIHNpZGUuIEV4cGVjdGVkIG9uZSBvZiAjeyR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtc30uXCI7XG4gICAgfVxuXG4gICAgQGlmICRjb3JuZXJzID09ICdhbGwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndGwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndHInIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYnInIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYmwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAncicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnbCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsOiAjeyRpbnZlcnRlZC1ib3JkZXItdGx9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cjogI3skaW52ZXJ0ZWQtYm9yZGVyLXRyfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnI6ICN7JGludmVydGVkLWJvcmRlci1icn07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsOiAjeyRpbnZlcnRlZC1ib3JkZXItYmx9O1xuXG4gICAgbWFzazpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpIGF0IDAgMCwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMCAwLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgYXQgMTAwJSAwLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAxMDAlIDAsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSBhdCAwIDEwMCUsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDAgMTAwJSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpIGF0IDEwMCUgMTAwJSwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMTAwJSAxMDAlO1xuICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1zaXplOiA1MSUgNTElO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxuICAgIC8vIERpc2FibGUgZm9yIG9sZGVyIFNhZmFyaSBicm93c2VycyBhcyB0aGUgbGF5b3V0IGJyZWFrcyB0aGVyZSB3aXRoIG1hc2tcbiAgICBAc3VwcG9ydHMgKGJhY2tncm91bmQ6IC13ZWJraXQtbmFtZWQtaW1hZ2UoaSkpIHtcbiAgICAgICAgbWFzazogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBXZSBjYW5ub3QgY2hlY2sgZm9yIEBzdXBwb3J0cyAoY2xpcC1wYXRoOiBzaGFwZSgpKSBiZWNhdXNlLCB3aGlsZSBGaXJlZm94IHN1cHBvcnRzIHRoZSBydWxlLCBpdCBkb2VzIG5vdCB3b3JrIC0geWV0IChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEwMzI4KVxuICAgIC8vIEJ1dCwgYXMgc2hhcGUoKSBjYW4gYmUgdXNlZCBpbiBhbmltYXRpb24gcGF0aHMsIGFuZCBDaHJvbWUgYW5kIGN1cnJlbnQgU2FmYXJpIHN1cHBvcnQgdGhpcyBpbXBsZW1lbnRhdGlvbi5cbiAgICAvLyBOT1RFOiBXZSBzaG91bGQgc3RpbGwgY2hlY2sgdG8gc2VlIHdoZW4gY2xpcC1wYXRoOiBzaGFwZSgpIGlzIGZ1bGx5IGVuYWJsZWQgaW4gRmlyZWZveCwgYnV0IGluIHRoZSBtZWFudGltZSwgbWFza2luZyB3b3JrcyBuaWNlbHkgdGhlcmVcbiAgICBAc3VwcG9ydHMgKG9mZnNldC1wYXRoOiBzaGFwZShmcm9tIHRvcCBsZWZ0LCBjdXJ2ZSB0byA1MCUgNTAlIHdpdGggMjUlIDEwMCUpKSB7XG4gICAgICAgIG1hc2s6IG5vbmU7XG4gICAgICAgIGNsaXAtcGF0aDogc2hhcGUoXG4gICAgICAgICAgICBmcm9tIDAgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCksXG4gICAgICAgICAgICBhcmMgYnkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSAqIC0xKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSxcbiAgICAgICAgICAgIGxpbmUgdG8gY2FsYygxMDAlIC0gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikpIDAsXG4gICAgICAgICAgICBhcmMgYnkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10ciksXG4gICAgICAgICAgICBsaW5lIHRvIDEwMCUgY2FsYygxMDAlIC0gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikpLFxuICAgICAgICAgICAgYXJjIGJ5IGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgKiAtMSkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1iciksXG4gICAgICAgICAgICBsaW5lIHRvIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpIDEwMCUsXG4gICAgICAgICAgICBhcmMgYnkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAqIC0xKSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpICogLTEpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpLFxuICAgICAgICAgICAgbGluZSB0byAwIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpXG4gICAgICAgICk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxufVxuXG4vLyBMYWJlbCBpcyBzaGlmdGVkIHdoZW4gLVxuLy8gaW5wdXQgaXMgZm9jdXNlZFxuLy8gaGFzIHZhbHVlIHByb3AgYnV0IG5vdCBwbGFjZWhvbGRlciBzaG93biAoaGFwcGVuZHMgd2hlbiBwcmVmaWxsZWQgaW5wdXQgaXMgbWFudWFsbHkgY2xlYXJlZClcbi8vIGhhcyBzb21lIHRleHQgcGxhY2Vob2xkZXJcbi8vIGlzIGF1dG9maWxsZWRcbkBtaXhpbiBmb3JtLWlucHV0LWxhYmVsLXNlbGVjdG9ycyB7XG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTpub3QoOndoZXJlKDpwbGFjZWhvbGRlci1zaG93bikpOmlzKDp3aGVyZSg6bm90KDpwbGFjZWhvbGRlci1zaG93bikpLCA6d2hlcmUoOm5vdChbcGxhY2Vob2xkZXI9JyddLCBbcGxhY2Vob2xkZXI9JyAnXSkpLCA6bm90KFt2YWx1ZT0nJ10pLCA6LXdlYmtpdC1hdXRvZmlsbCwgOmF1dG9maWxsLCA6Zm9jdXMpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSxcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmlzKDp3aGVyZSg6cGxhY2Vob2xkZXItc2hvd246bm90KFtwbGFjZWhvbGRlcj0nJ10sIFtwbGFjZWhvbGRlcj0nICddKSkpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSxcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmlzKDpmb2N1cykpIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0IGlTcGFjZSBjdXN0b20gZm9ybSBpbnB1dCBzdHlsZXMgdG8gYmUgYWJsZSB0byBkZXNpZ24gc3BlY2lhbCBpbnB1dHMgbW9yZSBlYXNpbHlcbiAqL1xuQG1peGluIHJlc2V0LWZvcm0taW5wdXQge1xuICAgICY6aGFzKDp3aGVyZShpbnB1dDpub3QoW3R5cGU9J2NoZWNrYm94J10sIFt0eXBlPSdyYWRpbyddKSwgdGV4dGFyZWEsIHNlbGVjdCkpIHtcbiAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogaW5pdGlhbDtcblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkID4gKikge1xuICAgICAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGRfX2lucHV0KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyguZXJyb3JzKSB7XG4gICAgICAgICAgICAtLWlucHV0LWJnOiBpbml0aWFsO1xuXG4gICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyhbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB6LWluZGV4OiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5pdGlhbDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IGluaXRpYWw7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoLmZvcm0tZmllbGQtLXNtKSB7XG4gICAgICAgICAgICAuZm9ybS1pbnB1dF9fbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjpub3QoOndoZXJlKDpmb2N1cy13aXRoaW4sIFtkaXNhYmxlZF0pKSB7XG4gICAgICAgICAgICAgICAgJjp3aGVyZSg6bm90KDpoYXMoLmVycm9ycykpKSB7XG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1maWVsZC1jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpoYXMoLmVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtbGFiZWwtc2VsZWN0b3JzIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5pdGlhbDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBTdHlsZXMgdG8gaGlkZSB0aGUgc2Nyb2xsYmFyIGJ1dCBzdGlsbCBhbGxvdyBzY3JvbGxpbmdcbiAqL1xuQG1peGluIHNjcm9sbC13aXRob3V0LXNjcm9sbGJhciB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7IC8qIEZpcmVmb3ggKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG5cbiAgICAvKiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEgKi9cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBBbHRlcm5hdGl2ZSBkaXNjLWxpa2Ugc3R5bGluZyBmb3IgcmFkaW8gYW5kIGNoZWNrYm94IGlucHV0c1xuQG1peGluIGlucHV0LWRpc2Mge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwIDEwcHggMCBhdXRvO1xuICAgIG1hcmdpbi1ibG9jazogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBmbGV4OiAwIDAgMTVweDsgLy8gaW4gY2FzZSBpdCdzIHBhcnQgb2YgYSBmbGV4IGxheW91dFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xufVxuXG4vLyBjYXJkIGJveGVzIGFyZSB0eXBpY2FsbHkgdXNlZCBvbiBwcm9kdWN0IGRldGFpbCBzZXJ2aWNlcywgY2hlY2tvdXQgdHJhbnNwb3J0L3BheW1lbnQgb3B0aW9ucyxcbi8vIEFORCBwcmUtY2hlY2tvdXQgcGFnZVxuQG1peGluIGNhcmQtYm94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS05MDAnKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWFwLmdldCgkaW5wdXQsIGJvcmRlci1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNHB4IDMwcHggMTRweCAyMHB4O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IC0xcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgW3R5cGU9J2NoZWNrYm94J10sXG4gICAgW3R5cGU9J3JhZGlvJ10ge1xuICAgICAgICBAaW5jbHVkZSBpbnB1dC1kaXNjO1xuICAgIH1cblxuICAgICY6aGFzKDpjaGVja2VkKSxcbiAgICAmW2NsYXNzKj0nc2VsZWN0ZWQnXSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBbdHlwZT0nY2hlY2tib3gnXTpub3QoLmZpeC1zcGVjaWZpY2l0eSksXG4gICAgICAgIFt0eXBlPSdyYWRpbyddOm5vdCguZml4LXNwZWNpZmljaXR5KSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXI6bm90KDpoYXMoW2Rpc2FibGVkXSkpLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCk7XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSxcbiAgICAgICAgW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoW2Rpc2FibGVkXSk6bm90KC5maXgtc3BlY2lmaWNpdHkpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQGltcG9ydCAndGhlbWUtdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJztcbkBpbXBvcnQgJ2FwcC9hYnN0cmFjdHMvYWxsJztcblxuLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICZfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDYwMDtcbiAgICB9XG5cbiAgICAmX19vZmZlciB7XG4gICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgbGlnaHQpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cyAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIDAgMDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMnJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICY6d2hlcmUoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDJyZW0gMXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOndoZXJlKDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDFyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiAycHggZGFzaGVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6d2hlcmUoOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKjp3aGVyZSg6bm90KC50aW1lLWxpbWl0ZWQtb2ZmZXJzX19vZmZlci10aW1lLXJlbWFpbmluZy1oZWFkaW5nKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDM0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgOTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtdGltZS1yZW1haW5pbmcge1xuICAgICAgICAgICAgJi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDUwMDtcbiAgICAgICAgICAgICAgICBmb250LXZhcmlhbnQ6IHRhYnVsYXItbnVtcztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNzAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi12YWx1ZSB7XG4gICAgICAgICAgICAgICAgZm9udC12YXJpYW50OiB0YWJ1bGFyLW51bXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS14bC13aWRlIHtcbiAgICAgICAgLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICAgICAgICAgJl9fb2ZmZXIge1xuICAgICAgICAgICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgICo6d2hlcmUoOm5vdCgudGltZS1saW1pdGVkLW9mZmVyc19fb2ZmZXItdGltZS1yZW1haW5pbmctaGVhZGluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDM0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA5MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLXRpbWUtcmVtYWluaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgJi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNzAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgneGwnKSB7XG4gICAgICAgICAgICAudGltZS1saW1pdGVkLW9mZmVycyB7XG4gICAgICAgICAgICAgICAgJl9fb2ZmZXIge1xuICAgICAgICAgICAgICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgd2lkZS1jYXJkKCd4bCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS4yZnI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLWRldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogY2xhbXAoMnJlbSwgM3Z3LCA0Ljc1cmVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6d2hlcmUoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgKjp3aGVyZSg6bm90KC50aW1lLWxpbWl0ZWQtb2ZmZXJzX19vZmZlci10aW1lLXJlbWFpbmluZy1oZWFkaW5nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtcGVyY2VudGFnZS1zYXZpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cygncicpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIDAgMCAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLXRpbWUtcmVtYWluaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDEuMiAxIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIDAgMCAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOndoZXJlKDpub3QoOmZpcnN0LWNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGludmVydGVkLWJvcmRlci1yYWRpdXMoJ2wnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWlubGluZS1zdGFydDogMnB4IGRhc2hlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOndoZXJlKDpub3QoJi0teGwtd2lkZSkpIHtcbiAgICAgICAgLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICAgICAgICAgJl9fb2ZmZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICAgICAgICAgICYtdGltZS1yZW1haW5pbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJkIHtcbiAgICAgICAgICAgICZfX2ZsYWdzIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS10aHVtYm5haWwtcGFkZGluZykgLSAyMHB4KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgW2NsYXNzKj0nX19pdGVtJ10ge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzICogMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNhcmQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDAgMC4zcmVtO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICAucHJvZHVjdC1jYXJkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYShtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksIDAuMSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRkZWZhdWx0LWJvcmRlci1yYWRpdXMgJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAgICAgICAgICZfX3BlcmV4IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmX19mbGFncyB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGModmFyKC0tdGh1bWJuYWlsLXBhZGRpbmcpIC0gMTBweCk7XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlLXNlbGY6IHN0YXJ0O1xuXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcyo9J19faXRlbSddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX3RleHQnXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDUwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3MHB4IDFmciAzOHB4O1xuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbi1jb250ZW50IG1pbi1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMjBweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDEwcHggMjBweDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmX19hdmFpbGFiaWxpdHkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX3ByaW1hcnksXG4gICAgICAgICAgICAgICAgJl9fc2Vjb25kYXJ5LFxuICAgICAgICAgICAgICAgICZfX3NlY29uZGFyeS1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4gICAgICAgICAgICAgICAgICAgIC0tdGh1bWJuYWlsLXBhZGRpbmc6IDBweDtcblxuICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiBhdXRvIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMCBhdXRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jYXJkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDEwcHggMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICZfX2Z1bGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19kaXNjb3VudCxcbiAgICAgICAgICAgICAgICAgICAgJl9fc2F2aW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fc2F2aW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBzYXZpbmctY29sb3ItYmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMgKiAwLjU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9fYWRkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZXIge1xuICAgICAgICAuZW1ibGEge1xuICAgICAgICAgICAgLmNhdGVnb3J5X19zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICZfX3ZpZXdwb3J0IHtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiA2MHB4OyAvLyBhbGxvdyBmb3IgdGhlIHNoYWRvdyAodmFsdWUgaXMgMTBweCA+IGNvbnRhaW5lciBwYWRkaW5nKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycmVtIGF1dG8gMDtcbiAgICAgICAgICAgICAgICBib3R0b206IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMjBweCAwIHJnYmEobWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZGFyaycpLCAwLjA2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkLXByaWNlX192b3VjaGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBGSVggRk9SIGlPUyAvIE1hY09TIFNhZmFyaSB3aXRoIFNwbGlkZVxuICAgIEBhdC1yb290IHtcbiAgICAgICAgLmNvbnRhaW5lcjpoYXMoPiAjeyZ9KSB7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwgeHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0LCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWVtcHR5LWxpbmUtYmVmb3JlXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvdWJsZS1zbGFzaC1jb21tZW50LWVtcHR5LWxpbmUtYmVmb3JlXG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi8uLi9kZWZhdWx0L3Nhc3MvYXNnYXJkLXZhcmlhYmxlcycgYXMgYXNnYXJkLXZhcmlhYmxlcztcblxuLy8gYm9vdHN0cmFwIHZhcmlhYmxlc1xuLy8gbGF5b3V0XG4kZ3JpZC1icmVha3BvaW50czogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGdyaWQtYnJlYWtwb2ludHMsXG4gICAgKFxuICAgICAgICBkZXNrdG9wOiAxNjUwcHgsXG4gICAgICAgIGZ1bGxoZDogMTkyMHB4LFxuICAgICAgICAyazogMjUwMHB4XG4gICAgKVxuKTtcblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kY29udGFpbmVyLW1heC13aWR0aHMsXG4gICAgKFxuICAgICAgICBsZzogMTAyNHB4LFxuICAgICAgICB4bDogMTE0MHB4LFxuICAgICAgICB4eGw6IDE2ODVweFxuICAgIClcbik7XG5cbi8vIHNwYWNpbmdcbiRjb250YWluZXItcGFkZGluZy14OiAzcmVtO1xuJGNhbnZhcy1wYWRkaW5nLXk6IDRyZW07XG4kY2FudmFzLXBhZGRpbmcteS1tZDogNnJlbTtcbiRjYW52YXMtcGFkZGluZy15LXh4bDogN3JlbTtcblxuLy8gZm9udFxuJGZvbnQtc2l6ZS1yb290OiA2Mi41JTtcbiRmb250LXNpemUtYmFzZTogMS40cmVtO1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuNjtcbiRmb250LWZhbWlseS1iYXNlOiAnSW50ZXInLCAnSW50ZXItZmFsbGJhY2snLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2l6ZS1zbTogMS4ycmVtO1xuJGZvbnQtc2l6ZS1sZzogJGZvbnQtc2l6ZS1iYXNlICogMS4yNTtcbiRmb250LXNpemUtbGFyZ2VyOiAkZm9udC1zaXplLWJhc2UgKiAxLjU7IC8vICRoNC1mb250LXNpemU7XG4kZm9udC1zaXplLWxhcmdlc3Q6ICRmb250LXNpemUtYmFzZSAqIDI7IC8vICRoMi1mb250LXNpemU7XG5cbiRsZWdlbmQtZm9udC1zaXplOiAycmVtO1xuJGxlZ2VuZC1tYXJnaW4tYm90dG9tOiAycmVtO1xuJGxlZ2VuZC1mb250LXdlaWdodDogNzAwO1xuXG4vLyB0eXBvXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogMWVtO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbi8vIGNvbG9yc1xuJHByaW1hcnk6ICMwMDdkYmE7XG4kcHJpbWFyeS1kYXJrOiAjMTQ1YzgwO1xuJHByaW1hcnktbWlkOiByZ2IoMCwgMTQxLCAyMTAsIDAuMTUpO1xuJHByaW1hcnktbGlnaHQ6ICNlNmY0ZmI7XG4kc2Vjb25kYXJ5OiAjZjAwO1xuJGxpZ2h0OiAjZmZmO1xuJGRhcms6ICMwMDA7XG5cbiRncmVlbjogIzA0ODEwMTtcbiRncmVlbi1kYXJrOiAjMTg4MDM4O1xuJGdyZWVuLXNwOiByZ2IoMywgMTgxLCAwKTtcbiRncmVlbi1kYXJrLXNlbWktdHJhbnNwOiByZ2IoMjQsIDEyOCwgNTYsIDAuMSk7XG5cbiR0aGVtZS1jb2xvcnM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiR0aGVtZS1jb2xvcnMsXG4gICAgKFxuICAgICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgICAgcHJpbWFyeS1kYXJrOiAkcHJpbWFyeS1kYXJrLFxuICAgICAgICBwcmltYXJ5LW1pZDogJHByaW1hcnktbWlkLFxuICAgICAgICBwcmltYXJ5LWxpZ2h0OiAkcHJpbWFyeS1saWdodCxcbiAgICAgICAgc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5LFxuICAgICAgICBsaWdodDogJGxpZ2h0LFxuICAgICAgICBkYXJrOiAkZGFyayxcbiAgICAgICAgZGFyay1zZW1pLXRyYW5zcDogcmdiKDAsIDAsIDAsIDAuMSksXG4gICAgICAgIGJhc2UtYmc6ICRsaWdodCxcbiAgICAgICAgYmFzZS10ZXh0OiAkZGFyayxcbiAgICAgICAgbGluazogJHByaW1hcnksXG4gICAgICAgIHN1Y2Nlc3M6ICM4ZWQ2MDksXG4gICAgICAgIHN1Y2Nlc3MtYmc6ICNlOGYxZDksXG4gICAgICAgIHN1Y2Nlc3MtdGV4dDogJGRhcmssXG4gICAgICAgIGluZm86ICM5Y2I1ZTEsXG4gICAgICAgIGluZm8tYmc6ICNkZGVkZjMsXG4gICAgICAgIGluZm8tdGV4dDogJGRhcmssXG4gICAgICAgIHdhcm5pbmc6ICMyMzliYzgsXG4gICAgICAgIHdhcm5pbmctYmc6ICM5Y2I1ZTEsXG4gICAgICAgIHdhcm5pbmctdGV4dDogJGRhcmssXG4gICAgICAgIGRhbmdlcjogI2UyNjk2OSxcbiAgICAgICAgZGFuZ2VyLWJnOiAjZjZkZmRmLFxuICAgICAgICBkYW5nZXItdGV4dDogJGRhcmssXG4gICAgICAgIHN0YXItcmF0aW5nLWJnOiAjZmIwLFxuICAgICAgICBpbi1zdG9jazogJGdyZWVuLFxuICAgICAgICBvdXQtb2Ytc3RvY2s6ICNlMjY5NjksXG4gICAgICAgIHByZW9yZGVyOiAjZWFiMDAwLFxuICAgICAgICAvLyAxMCUgb2YgaW4tc3RvY2sgY29sb3VyXG4gICAgICAgIGluLXN0b2NrLWJnOiByZ2IoNSwgMTM2LCAyLCAwLjEpLFxuICAgICAgICBncmF5LTEwMDogI2YzZjNmMyxcbiAgICAgICAgZ3JheS0xNTA6ICNlNGU0ZTQsXG4gICAgICAgIGdyYXktMjAwOiAjZGVkZWRlLFxuICAgICAgICBncmF5LTMwMDogI2QwZDBkMCxcbiAgICAgICAgZ3JheS00MDA6ICNiMWIxYjEsXG4gICAgICAgIGdyYXktNjAwOiAjNzQ3NDc0LFxuICAgICAgICBncmF5LTcwMDogIzRkNGQ0ZCxcbiAgICAgICAgZ3JheS04MDA6ICMzODM4MzgsXG4gICAgICAgIGdyYXktOTAwOiAjMjYyNjI2LFxuICAgICAgICBncmF5LXNlbWktdHJhbnNwOiByZ2IoMjAsIDkyLCAxMjgsIDAuMSksXG4gICAgICAgIHNhdmluZy1jb2xvcjogcmdiKDI0LCAxMjgsIDU2LCAxKSxcbiAgICAgICAgc2F2aW5nLWNvbG9yLWJnOiAkZ3JlZW4tZGFyay1zZW1pLXRyYW5zcCxcbiAgICAgICAgdm91Y2hlci1iZzogI2Q4ZWRmNyxcbiAgICAgICAgc2F2aW5ncy1wcmltYXJ5OiAjZTExOTMxLFxuICAgICAgICBzYXZpbmdzLXNlY29uZGFyeTogI2ZlZTk1NixcbiAgICAgICAgdXNlZC1vZmZlcnMtcHJpbWFyeTogI2VhYjAwMCxcbiAgICAgICAgdXNlZC1vZmZlcnMtc2Vjb25kYXJ5OiAjZmVmYmYyXG4gICAgKVxuKTtcbi8vIGJvb3RzdHJhcCB2YXJpYWJsZXMgZW5kXG5cbiRsYWJlbC1naWZ0LWNvbG9yOiAjMDBhZWEzO1xuJGxhYmVsLXVzZWQtcHJvZHVjdC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCB1c2VkLW9mZmVycy1wcmltYXJ5KTtcbiRsYWJlbC1naWZ0LWJnLWNvbG9yOiAjZTZmYmYzO1xuXG4vLyBzaG9waW8gdmFyaWFibGVzXG4kZm9udC1wYXRoOiAnL2Fzc2V0cy9pc3BhY2UuY3ovZm9udCc7XG5cbiRoMS1mb250LXNpemU6IGNsYW1wKDNyZW0sIDZ2dywgNHJlbSk7IC8vICRmb250LXNpemUtYmFzZSAqIDIuNTtcbiRoMi1mb250LXNpemU6IDMuNnJlbTsgLy8gQ3VzdG9tIGZvbnQgc2l6ZSBieSBkZXNpZ25cbiRoMy1mb250LXNpemU6IDJyZW07IC8vICRmb250LXNpemUtYmFzZSAqIDEuNzU7XG4kaDQtZm9udC1zaXplOiAxLjhyZW07XG4kaDUtZm9udC1zaXplOiAxLjZyZW07XG4kaDYtZm9udC1zaXplOiAxLjZyZW07XG5cbiRkZWZhdWx0LWJvcmRlci1yYWRpdXM6IDhweDtcblxuJGJ0bjogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGJ0bixcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5JyksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBob3Zlci1iZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeS1kYXJrJyksXG4gICAgICAgIGhvdmVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzXG4gICAgKVxuKTtcblxuJGJ0bi1hbHQ6IChcbiAgICBiZy1jb2xvcjogJGdyZWVuLWRhcmssXG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0JyksXG4gICAgaG92ZXItYmctY29sb3I6ICRncmVlbi1zcCxcbiAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzXG4pO1xuXG4kYnRuLWRpc2FibGVkOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kYnRuLWRpc2FibGVkLFxuICAgIChcbiAgICAgICAgYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnYmFzZS10ZXh0JyksXG4gICAgICAgIGhvdmVyLWJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktMjAwKSxcbiAgICAgICAgaG92ZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2Jhc2UtdGV4dCcpXG4gICAgKVxuKTtcblxuJGJ0bi1kYXJrOiAoXG4gICAgYmctY29sb3I6ICRkYXJrLFxuICAgIGNvbG9yOiAjZmZmLFxuICAgIGhvdmVyLWJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktOTAwKSxcbiAgICBob3Zlci1jb2xvcjogI2ZmZlxuKTtcblxuJGlucHV0OiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kaW5wdXQsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTIwMCcpLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZGFyaycpLFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwXG4gICAgKVxuKTtcblxuJGNoZWNrYm94LWNoZWNrOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCxcXFxuICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxcXG4gICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcXFxuICAgIGZpbGw9XCJub25lXCJcXFxuICAgIHN0cm9rZT1cIiN7cmdiYSgkbGlnaHQsIDEpfVwiXFxcbiAgICBzdHJva2Utd2lkdGg9XCIzXCI+XFxcbiAgICA8cG9seWxpbmUgcG9pbnRzPVwiMjAgNiA5IDE3IDQgMTJcIj48L3BvbHlsaW5lPlxcXG4gICAgPC9zdmc+Jyk7XG5cbiRwYXNzd29yZC1zaG93OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCxcXFxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTc2IDUxMlwiPlxcXG4gICAgPHBhdGggZD1cIk0yODggODBjLTY1LjIgMC0xMTguOCAyOS42LTE1OS45IDY3LjdDODkuNiAxODMuNSA2MyAyMjYgNDkuNCAyNTYgNjMgMjg2IDg5LjYgMzI4LjUgMTI4IDM2NC4zYzQxLjIgMzguMSA5NC44IDY3LjcgMTYwIDY3LjdzMTE4LjgtMjkuNiAxNTkuOS02Ny43QzQ4Ni40IDMyOC41IDUxMyAyODYgNTI2LjYgMjU2Yy0xMy42LTMwLTQwLjItNzIuNS03OC42LTEwOC4zQzQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xQzQzMy41IDQ0My4yIDM2OC44IDQ4MCAyODggNDgwcy0xNDUuNS0zNi44LTE5Mi42LTgwLjZDNDguNiAzNTYgMTcuMyAzMDQgMi41IDI2OC4zYy0zLjMtNy45LTMuMy0xNi43IDAtMjQuNkMxNy4zIDIwOCA0OC42IDE1NiA5NS40IDExMi42ek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwaC0yYzEuMyA1LjEgMiAxMC41IDIgMTYgMCAzNS4zLTI4LjcgNjQtNjQgNjQtNS41IDAtMTAuOS0uNy0xNi0ydjJjMCA0NC4yIDM1LjggODAgODAgODB6bTAtMjA4YTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnpcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGFuZ2xlLXJpZ2h0OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCxcXFxuICAgIDxzdmcgdmlld0JveD1cIjAgMCAzMjAgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxcXG4gICAgPHBhdGggZmlsbD1cIiN7cmdiYShtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpLCAwLjk5OSl9XCJcXFxuICAgIGQ9XCJNMjc4LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDIxMC43IDI1NiA3My40IDExOC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjB6XCIvPlxcXG4gICAgPC9zdmc+Jyk7XG5cbiRkaWFnb25hbC1saW5lOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCxcXFxuICAgIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCI+XFxcbiAgICA8bGluZSBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlPVwiI3tyZ2JhKG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS00MDApLCAwLjk5OSl9XCJcXFxuICAgIHgxPVwiMFwiIHkxPVwiMFwiIHgyPVwiMTAwXCIgeTI9XCIxMDBcIiB2ZWN0b3ItZWZmZWN0PVwibm9uLXNjYWxpbmctc3Ryb2tlXCIvPlxcXG4gICAgPC9zdmc+Jyk7XG5cbiRicmVhZGNydW1iczogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGJyZWFkY3J1bWJzLFxuICAgIChcbiAgICAgICAgYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktMTAwJyksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksXG4gICAgICAgIGFjdGl2ZS1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS02MDAnKVxuICAgIClcbik7XG5cbi8vIGhlYWRlclxuJGhlYWRlci1uYXYtaGVpZ2h0OiA1LjVyZW07IC8vIGhlaWdodCBvbiBzbWFsbCBzY3JlZW5zXG4kaGVhZGVyLW5hdi1kZXNrdG9wLWhlaWdodDogMTQuNXJlbTsgLy8gaGVpZ2h0IG9uIGJpZ2dlciBzY3JlZW5zXG4kaGVhZGVyLXRvcC1uYXYtZGVza3RvcC1oZWlnaHQ6IDE0LjVyZW07IC8vIGhlaWdodCBvbiBiaWdnZXIgc2NyZWVuc1xuJGhlYWRlci1uYXYtYnJlYWtwb2ludDogJ3hsJzsgLy8gYnJlYWtwb2ludCB3aGVuIG5hdiBjaGFuZ2VzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3BcbiRoZWFkZXItc2VhcmNoLWRlc2t0b3AtaGVpZ2h0OiA1cmVtO1xuJGhlYWRlci1zZWFyY2gtZGVza3RvcC13aWR0aDogMTAwJTtcblxuJHNjcm9sbGJhci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeScpO1xuXG4vLyBtZW51XG4kbWVudS1pdGVtLWRlc2t0b3AtcGFkZGluZzogMXJlbTtcbiRtZW51LXNlY29uZGFyeS1saW5rcy1iZzogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeS1kYXJrJyk7XG4kbWVudS1zdWJtZW51LXNpbmdsZS1jb2x1bW4tbWluOiA5O1xuXG4vLyBmb290ZXJcbiRmb290ZXItYmxvY2stY29sbGFwc2VkLWhlaWdodDogNi41cmVtO1xuXG4vLyB2b3VjaGVyIFBERlxuLy8gTk9URTogaWYgdGhlIGZvbnRzIHVzZWQgaGVyZSBhcmUgbm9uLXN0YW5kYXJkLCB0aGVuIHRoZXkgbmVlZCB0byBiZSB1cGxvYWRlZCBhbmQgc3BlY2lmaWVkIHNlcGFyYXRlbHkgaW4gdGhlXG4vLyBtUERGIGluaXRpYWxpemF0aW9uIChzZWUgdXNhZ2UgaW4gU0Qgb3Igc3BlYWsgd2l0aCBEQiA6KSlcbiR2b3VjaGVyOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kdm91Y2hlcixcbiAgICAoXG4gICAgICAgIHByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICAgICAgcHJpbWFyeS1jb2xvcjogIzQ0NCxcbiAgICAgICAgc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICNkZGQsXG4gICAgICAgIHNlY29uZGFyeS1jb2xvcjogIzQ0NCxcbiAgICAgICAgYmxvY2staGlnaGxpZ2h0LWJhY2tncm91bmQtY29sb3I6ICNmMGYwZjAsXG4gICAgICAgIGJsb2NrLWhpZ2hsaWdodC1jb2xvcjogIzQ0NCxcbiAgICAgICAgYmFzZS1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSxcbiAgICAgICAgYmFzZS1saW5lLWhlaWdodDogMS41LFxuICAgICAgICBoZWFkaW5nLWZvbnQ6ICRmb250LWZhbWlseS1iYXNlLFxuICAgICAgICBib2R5LWZvbnQ6ICRmb250LWZhbWlseS1iYXNlLFxuICAgICAgICBsb2dvLW1heC1oZWlnaHQ6IDEwbW1cbiAgICApXG4pO1xuXG4vLyBGdWxsLXdpZHRoIHNsaWRlciBpbWFnZSBkaW1lbnNpb25zIChhcHBsaWVzIHRvIGRlc2t0b3Agb25seSlcbi8vIGltYWdlLXdpZHRoOiBpbWFnZSBzaXplXG4vLyBpbWFnZS1jb250ZW50LWFyZWEtd2lkdGg6IHdoZXJlIHdlIGNhbiBzYWZlbHkgY3JvcCAoZnJvbSB0aGUgZnVsbCBzaXplIGltYWdlKVxuJHNsaWRlci1kZXNrdG9wOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kc2xpZGVyLWRlc2t0b3AsXG4gICAgKFxuICAgICAgICBpbWFnZS13aWR0aDogMTkwMHB4LFxuICAgICAgICBpbWFnZS1jb250ZW50LWFyZWEtd2lkdGg6IDEyMDBweFxuICAgIClcbik7XG4vLyBzaG9waW8gdmFyaWFibGVzIGVuZFxuXG4vLyBDU1MgdmFyaWFibGVzXG4vLyBtb3ZlIHRvIGFwcC5zY3NzXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9*/