/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * @see https://www.w3.org/WAI/WCAG21/Techniques/css/C40 for reference
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  overflow-x: hidden;
  height: -webkit-fill-available;
}

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

body {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.4rem;
  min-height: 100vh;
  min-height: -webkit-fill-available;
}

._keyfocus *:focus {
  outline: 2px solid #f9f9f9;
  outline-offset: 0;
  box-shadow: 0 0 0 4px #193146;
}

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

/* Hide HTML5 Up and Down arrows. */
input[type=number] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}
input[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Hide HTML5 'X' in search input */
input[type=search] {
  /* Clears the 'X' from Internet Explorer */
  /* Clears the 'X' from Chrome */
}
input[type=search]::-ms-clear, input[type=search]::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}
input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
  display: none;
}

.loading-mask[data-role=main-css-loader] {
  display: none !important;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.cs-container__inner {
  max-width: 180rem;
  width: 100%;
  margin: 0 auto;
  position: relative;
}
.cs-container__inner:before, .cs-container__inner:after {
  content: "";
  display: table;
  clear: both;
}
.cs-container__aside {
  width: 100%;
}
@media (min-width: 48em) {
  .cs-container__aside {
    width: 40%;
  }
}
@media (min-width: 64em) {
  .cs-container__aside {
    width: 32%;
  }
}
@media (min-width: 90em) {
  .cs-container__aside {
    width: 30%;
  }
}
.cs-container__main-column {
  width: 56%;
  position: relative;
}
@media (min-width: 64em) {
  .cs-container__main-column {
    width: 65%;
  }
}
@media (min-width: 90em) {
  .cs-container__main-column {
    width: 67%;
  }
}
@media (max-width: 47.99em) {
  .cs-container__main-column {
    max-width: 100% !important;
    width: 100% !important;
  }
}
@media (min-width: 64em) {
  .cs-container__main-column--space-top {
    padding-top: 3rem;
  }
}
.cs-container--contrast {
  background-color: #f4f4f4;
}
@media (min-width: 64em) {
  .cs-container--contrast {
    background-image: url("../images/background.png");
    background-size: cover;
    background-repeat: no-repeat;
  }
}
.cs-container--spacious {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
@media (min-width: 64em) {
  .cs-container--spacious {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}
.cs-container--noscroll {
  overflow: hidden;
}
.cs-container--ontop {
  z-index: 301;
}
.cs-container--viewport-width {
  max-width: none;
}
.cs-container--no-padding {
  padding-left: 0;
  padding-right: 0;
}
.cs-container--use-whole-screen .cs-container__inner {
  max-width: 100%;
}

.cms-page-view.page-layout-1column #maincontent {
  max-width: 180rem;
  margin: 0 auto;
}

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
body,
html {
  height: 100%;
  max-width: 100vw;
}

.no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh;
}

.no-scroll-child {
  overflow-y: hidden !important;
}

#maincontent {
  flex: 1 0 auto;
}

.page-wrapper {
  display: block !important;
  min-height: 100%;
}
@media (min-width: 48em) {
  .page-wrapper {
    display: flex !important;
    flex-direction: column !important;
  }
}

.columns .column.main {
  width: auto;
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem;
}
@media (min-width: 48em) {
  .columns .column.main {
    padding: 4rem 0 0;
  }
}

.cms-home .columns .column.main {
  padding: 0;
}
@media (min-width: 48em) {
  .cms-home .columns .column.main {
    padding: 0;
  }
}

.page-layout-1column .product-info-wrapper {
  width: 100%;
}
@media (min-width: 48em) {
  .page-layout-1column .product-info-wrapper {
    position: absolute;
    right: 0;
    height: 100%;
    width: 40%;
  }
}
@media (min-width: 64em) {
  .page-layout-1column .product-info-wrapper {
    width: 30%;
  }
}

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
.page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f4f4f4;
  }
  .page-layout-2columns-left .columns {
    display: block;
  }
  .page-layout-2columns-left .column.main {
    float: right;
  }
  .page-layout-2columns-left .sidebar-main {
    float: left;
  }
}
a, a:visited {
  color: #000000;
  text-decoration: none;
}
a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #666;
  text-decoration: none;
}

.gift-options-cart-item {
  display: none;
}

@media (min-width: 48em) {
  .paypal-express-review .page-title-wrapper {
    padding: 0 1.5rem;
  }
}

@media (max-width: 63.99em) {
  .paypal-review.view .cs-cart-item__price {
    padding-left: 0 !important;
  }
  .paypal-review.view .cs-cart-item__subtotal {
    padding-right: 0 !important;
  }
}
@media (min-width: 48em) {
  .paypal-review.view {
    padding: 0 1.5rem;
  }
}

.paypal-express-in-context-mini-cart-container {
  margin-top: 1rem;
}

.paypal-review-discount {
  border-bottom: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.login-container .block-new-customer .actions-toolbar {
  margin-top: 2.5rem;
}

.login-container .block .block-title {
  font-size: 1.8rem;
  border-bottom: 1px solid #e8e8e8;
  margin-bottom: 1.5rem;
  padding-bottom: 1.2rem;
}

.login-container .fieldset:after {
  margin: 1rem 0 0;
  content: attr(data-hasrequired);
  display: block;
  letter-spacing: normal;
  word-spacing: normal;
  color: #e02b27;
  font-size: 1.2rem;
}

.block-addresses-list .items.addresses > .item {
  margin-bottom: 2rem;
}

.block-addresses-list .items.addresses > .item:last-child {
  margin-bottom: 0;
}

.form-address-edit .region_id {
  display: none;
}

.form-address-edit .actions-toolbar .action.primary {
  font-size: 1.8rem;
}

.form-edit-account .fieldset.password {
  display: none;
}

.box-billing-address .box-content,
.box-shipping-address .box-content,
.box-information .box-content,
.box-newsletter .box-content {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: auto;
          hyphens: auto;
  line-height: 2.6rem;
}

.field.password .control {
  display: flex;
  flex-direction: column;
}

.field.password .control .mage-error {
  order: 2;
}

.field.password .control .input-text {
  order: 0;
  z-index: 2;
}

.fieldset .fullname.field > .label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.fieldset .fullname.field > .label + .control {
  width: 100%;
}

.field.street .field .label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

.control.captcha-image {
  margin-top: 1rem;
}

.control.captcha-image .captcha-img {
  vertical-align: middle;
}

@media only screen and (max-width: 639px) {
  .account .column.main,
.account .sidebar-additional {
    margin: 0;
  }
}
@media (max-width: 47.99em) {
  .login-container .fieldset:after {
    text-align: center;
  }

  .control.captcha-image .captcha-img {
    margin-bottom: 1rem;
    display: block;
  }

  .form.search.advanced .field.price .with-addon .input-text {
    flex-basis: auto;
    width: 100%;
  }
}
@media (min-width: 48em) {
  .login-container .block .login .actions-toolbar > .primary {
    margin-bottom: 0;
    margin-right: 3rem;
  }

  .login-container .block .login .actions-toolbar > .secondary {
    float: left;
  }

  .fieldset .fullname .field .label {
    padding: 6px 15px 0 0;
    text-align: right;
    width: 25.8%;
    box-sizing: border-box;
    float: left;
  }

  .fieldset .fullname .field .control {
    width: 74.2%;
    float: left;
  }

  .block-addresses-list .items.addresses {
    font-size: 0;
  }

  .block-addresses-list .items.addresses > .item {
    display: inline-block;
    font-size: 1.4rem;
    margin-bottom: 2rem;
    vertical-align: top;
    width: 48.8%;
  }

  .block-addresses-list .items.addresses > .item:nth-last-child(1),
.block-addresses-list .items.addresses > .item:nth-last-child(2) {
    margin-bottom: 0;
  }

  .block-addresses-list .items.addresses > .item:nth-child(even) {
    margin-left: 2.4%;
  }

  .control.captcha-image .captcha-img {
    margin: 0 1rem 1rem 0;
  }

  .dashboard-welcome-toggler {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-navigation {
  display: none;
}
@media (hover: hover) and (pointer: fine) {
  .cs-slider-navigation {
    position: absolute;
    z-index: 11;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.4rem;
    height: 5.2rem;
    border: 0;
    border-radius: 0px;
    background: #fff;
    box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
    padding: 0;
    color: #000000;
    cursor: pointer;
    transition: all 0.3s;
  }
  .cs-slider-navigation--prev {
    left: 1.5rem;
  }
  .cs-slider-navigation--next {
    right: 1.5rem;
  }
  .cs-slider-navigation[disabled] {
    opacity: 0.25;
    cursor: not-allowed;
  }
  .cs-slider-navigation[disabled] svg {
    filter: grayscale(1);
  }
  .cs-slider-navigation:not([disabled]):hover {
    box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25);
  }
  .cs-slider-navigation__icon {
    width: 1.4rem;
    height: 2.7rem;
    fill: currentColor;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  min-height: 3rem;
}
.cs-slider-pagination--fraction {
  gap: 0;
  white-space: pre-wrap;
  color: inherit;
  font-weight: 600;
}
.cs-slider-pagination--fraction span {
  color: #000;
}
.cs-slider-pagination__bullet {
  position: relative;
  border-radius: 2px;
  background: #f4f4f4;
  border: 0;
  inline-size: 2.2rem;
  block-size: 0.9rem;
  transition: all 0.15s;
  overflow: hidden;
  text-indent: -99rem;
}
.cs-slider-pagination__bullet.current {
  background-color: #000;
}
.cs-slider-pagination__bullet:only-child {
  display: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */
}
.cs-addtocart__wrapper {
  overflow: hidden;
}
.page-product-downloadable .update .cs-addtocart__wrapper {
  display: none;
}
.cs-addtocart__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-addtocart__button:hover, .cs-addtocart__button:focus, .cs-addtocart__button:active {
  background-color: #000000 !important;
}
.cs-addtocart__button:before, .cs-addtocart__button:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-addtocart__button:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-addtocart__button:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-addtocart__button:hover:after {
  width: calc(100% + 2px);
}
.cs-addtocart__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-addtocart__button, .cs-addtocart__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-addtocart__button *, .cs-addtocart__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-addtocart__button:hover:not([disabled]) *, .cs-addtocart__button:focus:not([disabled]) *, .cs-addtocart__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-addtocart__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-addtocart__button[disabled] {
  /*
   * ATC btn. in buybox uses deferATCClick()
   * as part of the `Faster Add To Cart` enahncement
   * therefore it's appearance is set to normal all the time.
   */
}
.cs-buybox .cs-addtocart__button[disabled] {
  opacity: 1;
}
.cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
  color: #fff;
}
.cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
  fill: #fff;
}
.cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
  color: #fff;
}
.cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
  fill: #fff;
}
.cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
  white-space: nowrap;
}
.cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
  max-width: none;
  max-height: none;
  width: 2.2rem;
  height: 2.2rem;
  /* stylelint-disable */
  right: 0.8em;
  /* stylelint-enable */
}
.cs-addtocart__fail-icon {
  transition: none;
}
.cs-addtocart__button-label, .cs-addtocart__success-label {
  transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
}
.cs-addtocart__button-label {
  display: inline-block;
  transform: translate3d(0, 0, 0);
}
.cs-addtocart__loading {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: scale(0) translate3d(-50%, -50%, 0);
  width: 40px;
  height: 10px;
  opacity: 0;
  transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
  transition-delay: 0.2s;
}
.cs-addtocart__loading-ball {
  position: absolute;
  display: block;
  width: 10px;
  height: 10px;
  bottom: 0;
  background: #fff;
  border-radius: 50%;
}
.cs-addtocart__loading-ball--1 {
  left: 0;
}
.cs-addtocart__loading-ball--2 {
  left: 15px;
  animation-delay: 0.15s !important;
}
.cs-addtocart__loading-ball--3 {
  left: 30px;
  animation-delay: 0.3s !important;
}
.cs-addtocart__feedback-bg {
  position: absolute;
  left: -1em;
  top: -1px;
  bottom: -1px;
  width: calc(100% + 2.5em);
  transform: translate3d(-100%, 0, 0);
  transform-origin: 0 0;
  transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
  background: #31a43a;
}
.cs-addtocart--no-transitions .cs-addtocart__feedback-bg {
  transition: none;
}
.cs-addtocart--fail .cs-addtocart__feedback-bg {
  background: #cc1c10;
}
.cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
  opacity: 0;
}
.cs-addtocart__success-icon, .cs-addtocart__fail-icon {
  height: 1.725em;
  transition-delay: 0.2s;
}
.cs-addtocart__success-label, .cs-addtocart__fail-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0) translateX(-2em);
  transition-delay: 0.2s;
  white-space: nowrap;
  padding-right: 3.5rem;
}
.cs-addtocart__minicart {
  width: 100%;
  text-align: center;
}
.cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
  max-width: 180rem;
  width: 100%;
  margin: 0 auto;
  width: 100%;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translate3d(-50%, 0, 0);
  z-index: 400;
  padding: 0;
  text-align: right;
  display: flex;
  justify-content: flex-end;
}
.cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
  right: 0 !important;
}
.cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
  right: 3.2rem !important;
}
.cs-addtocart__minicart--sticky .cs-addtocart__minicart-link, .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
  text-align: center;
  padding: 2.5rem 1rem;
  background: #fff;
  box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
  animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
  position: relative;
}
.cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
  animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45);
}
.cs-addtocart__minicart-link:before {
  content: none !important;
}
.cs-addtocart__minicart-qty-badge-wrapper {
  position: absolute;
  opacity: 0;
  z-index: 600;
  transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
  pointer-events: none;
}
.cs-addtocart__minicart-qty-badge-wrapper--animating {
  animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
  position: fixed;
  top: 0.5rem;
}
@media (min-width: 48em) {
  .cs-addtocart__minicart-qty-badge-wrapper--animating {
    top: 1.3rem;
  }
}
@media (min-width: 64em) {
  .cs-addtocart__minicart-qty-badge-wrapper--animating {
    position: absolute;
    top: 5.3rem;
  }
}
.cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
  position: fixed;
  top: 1.8rem;
}
.cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
  position: static;
  visibility: visible;
}
.cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
  opacity: 0;
  transform: translate3d(2em, 0, 0);
}
.cs-addtocart--loading .cs-addtocart__loading {
  opacity: 1;
  transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em);
}
.cs-addtocart--loading .cs-addtocart__loading-ball {
  animation: ball-in 1s infinite;
}
.cs-addtocart--done .cs-addtocart__button-icon {
  opacity: 0;
}
.cs-addtocart--done .cs-addtocart__feedback-bg {
  transform: translate3d(0, 0, 0);
}
.cs-addtocart--done .cs-addtocart__feedback-bg:after {
  transform: translate3d(-5.3rem, 0, 0);
}
.cs-addtocart--success .cs-addtocart__success-icon {
  opacity: 1;
}
.cs-addtocart--success .cs-addtocart__success-label {
  opacity: 1;
  transform: translate3d(-50%, -50%, 0);
}
.cs-addtocart--fail .cs-addtocart__fail-icon {
  opacity: 1;
}
.cs-addtocart--fail .cs-addtocart__fail-label {
  opacity: 1;
  transform: translate3d(-50%, -50%, 0);
}
.cs-addtocart--animation-done .cs-addtocart__button-label,
.cs-addtocart--animation-done .cs-addtocart__button-icon {
  transition-delay: 0.5s;
}
.cs-addtocart--animation-done .cs-addtocart__feedback-bg {
  transition-delay: 0.2s;
}
.cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
  transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51);
}
.cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
  transition-delay: 0;
}
.cs-addtocart--animation-done .cs-addtocart__success-label,
.cs-addtocart--animation-done .cs-addtocart__fail-icon {
  transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
  transition-delay: 0;
}
.cs-addtocart--animation-done .cs-addtocart__success-icon,
.cs-addtocart--animation-done .cs-addtocart__fail-icon {
  transition-delay: 0;
}
@keyframes ball-in {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(0, -100%, 0);
  }
}
@keyframes move-qty-badge {
  0% {
    opacity: 1;
  }
  15% {
    transform: scale(1);
  }
  80% {
    opacity: 1;
    transform: scale(1.5);
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}
.cs-addtocart .block-minicart {
  margin-bottom: 0;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem;
}
@media (min-width: 64em) {
  .cs-authorization-link {
    padding: 0 0 0 1.3rem;
    margin-left: 1.7rem;
  }
}
.cs-authorization-link:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  content: "";
  border-left: 0.2rem solid #fff;
}
.cs-authorization-link__link {
  display: flex;
  align-items: center;
}
.cs-authorization-link__link, .cs-authorization-link__link:visited {
  color: #000000;
  text-decoration: none;
}
.cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
  color: #666;
  text-decoration: none;
}
.cs-authorization-link__link:hover .cs-authorization-link__icon path {
  fill: #888;
}
.cs-authorization-link__icon {
  width: 1.8rem;
  height: 1rem;
  padding-right: 0.5rem;
}
.cs-authorization-link__icon path {
  fill: #888;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
  z-index: 200;
  margin-top: -1px;
}
.cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
  background: #fff;
  padding: 0.5rem 1rem;
  margin: 0;
  border-bottom: 1px solid #dcdcdc;
  display: flex;
  align-items: center;
  transition: background-color 0.15s linear;
  font-size: 1.29rem;
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem;
  }
}
.cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
  background-color: #f4f4f4;
  cursor: pointer;
}
.cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
  border-bottom: none;
}
.cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
  padding: 0;
  margin-right: 1rem;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
  width: 3.6rem;
  height: 4.5rem;
}
.cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
  flex: 1 1 100%;
  margin: 0;
}
.cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
  height: 5.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
  display: block;
}
.cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
  font-size: 1.2rem;
  color: #888;
}
.cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
  font-size: 1.29rem;
  color: #000;
  font-weight: 700;
}
.cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
  margin: 0.3rem 0 0;
}
.cs-autocomplete .price-box {
  display: flex;
}
.cs-autocomplete .price-box > .price {
  color: #000;
  font-size: 1.5rem;
  font-weight: 700;
  margin-right: 0;
}
.cs-autocomplete .price-box .old-price > .price {
  text-decoration: line-through;
  color: #696969;
  font-size: 1.5rem;
  font-weight: 700;
}
.cs-autocomplete .price-box .special-price > .price {
  color: #000000;
  font-size: 1.5rem;
  font-weight: 700;
}
.cs-autocomplete .price-box .minimal-price-link {
  display: none;
}
.cs-autocomplete .price-box .old-price {
  order: -1;
}
.cs-autocomplete .price-box .old-price .price {
  margin-right: 1rem;
}
.cs-autocomplete__badges {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  margin-left: 1rem;
}
.cs-autocomplete__badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background-color: #000000;
  color: #fff;
  border: 0;
  border-radius: 0px;
  padding: 0 0.7rem;
  font-size: 1.1rem;
  font-weight: 700;
  min-height: 2em;
  text-transform: uppercase;
}
.cs-autocomplete__badge + .cs-autocomplete__badge {
  margin-top: 0.5rem;
}
.cs-autocomplete__badge--popular {
  background-color: #e41f12;
  color: #fff;
}
.cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
  line-height: normal;
}
.cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
  margin-left: 0.5rem;
}
.cs-autocomplete__badge--free-shipping {
  background-color: #37b841;
  color: #fff;
}
.cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
  line-height: normal;
}
.cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
  margin-left: 0.5rem;
}
.cs-autocomplete__badge-text {
  line-height: normal;
}
.cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
  margin-left: 0.5rem;
}
@media (min-width: 23.125em) {
  .cs-autocomplete__badge-text {
    white-space: nowrap;
  }
}

.autocomplete-list {
  margin: -1px 0 1rem;
  border-top: 1px solid #dcdcdc;
}
.autocomplete-list:first-child {
  border-top: 0;
}
.autocomplete-list:last-child {
  margin-bottom: 0;
}
.autocomplete-list .amount {
  color: #888;
  font-size: 1.29rem;
  font-weight: 700;
  margin-left: 0.5rem;
}
.autocomplete-list .amount:not(:empty):after {
  content: ")";
}
.autocomplete-list .amount:not(:empty):before {
  content: "(";
}

.autocomplete-list-title {
  padding: 1.2rem 3rem 1rem 1rem;
  border-bottom: none;
  color: #888;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.29rem;
  letter-spacing: 1px;
  margin: 0;
}
.autocomplete-list-title:hover, .autocomplete-list-title.selected {
  background-color: transparent;
}
.autocomplete-list-title:not(:empty):first-child {
  border-top: transparent;
}

@media (hover: none) {
  html.autocomplete-dropdown-visible {
    overflow-y: hidden;
  }
}
@media (hover: none) {
  html.autocomplete-dropdown-visible body {
    overflow-y: hidden;
  }
}
@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400;
}
.cs-breadcrumbs__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cs-breadcrumbs__item {
  position: relative;
  display: inline-block;
  margin: 0;
  padding: 0 1.95em 0 0;
  cursor: pointer;
  font-size: 1.2rem;
}
.cs-breadcrumbs__item:last-child {
  padding: 0;
  color: #888;
  cursor: default;
}
.cs-breadcrumbs__item:not(:last-child):after {
  position: absolute;
  top: 50%;
  right: 0.8em;
  content: "⁄";
  transform: translateY(-50%);
  line-height: 1;
  color: #b0b0b0;
}
.cs-breadcrumbs__link {
  position: relative;
  display: inline-block;
  color: #b0b0b0;
}
.cs-breadcrumbs__link:visited {
  color: #b0b0b0;
}
.cs-breadcrumbs__link:hover {
  text-decoration: none;
  color: #212121;
}
.cs-breadcrumbs__separator-icon {
  position: absolute;
  top: 50%;
  right: 0.5em;
  transform: translateY(-50%);
  width: 0.8em;
  height: 0.8em;
  fill: #b0b0b0;
}

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
}
@media (min-width: 48em) {
  .cs-container--breadcrumbs {
    display: block;
  }
}

.catalog-category-view .cs-breadcrumbs {
  order: -2;
  margin: 0 auto 3rem auto;
  padding: 0;
}
.catalog-category-view .cs-page-category__cc-top {
  order: -2;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-button:hover, .cs-button:focus, .cs-button:active {
  background-color: #000000 !important;
}
.cs-button:before, .cs-button:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-button:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-button:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-button:hover:after {
  width: calc(100% + 2px);
}
.cs-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-button, .cs-button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-button *, .cs-button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-button:hover:not([disabled]) *, .cs-button:focus:not([disabled]) *, .cs-button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-button__span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-button__icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}

.cs-button-component {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.cs-button-component:hover, .cs-button-component:focus, .cs-button-component:active {
  background-color: #000000 !important;
}
.cs-button-component:before, .cs-button-component:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-button-component:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-button-component:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-button-component:hover:after {
  width: calc(100% + 2px);
}
.cs-button-component::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-button-component, .cs-button-component:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-button-component *, .cs-button-component:visited * {
  color: #fff;
  fill: #fff;
}
.cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-button-component:hover:not([disabled]) *, .cs-button-component:focus:not([disabled]) *, .cs-button-component:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-button-component[disabled] {
  opacity: 0.65;
  cursor: auto;
}
@media (min-width: 48em) {
  .cs-button-component {
    margin: 0 0 4rem;
  }
}
.cs-button-component--skip-spacing {
  margin: 0;
}
.cs-button-component__span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-button-component__icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}
.cs-button-component__amount:before {
  content: "(";
}
.cs-button-component__amount:after {
  content: ")";
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.cs-container__inner {
  max-width: 180rem;
  width: 100%;
  margin: 0 auto;
  position: relative;
}
.cs-container__inner:before, .cs-container__inner:after {
  content: "";
  display: table;
  clear: both;
}
.cs-container__aside {
  width: 100%;
}
@media (min-width: 48em) {
  .cs-container__aside {
    width: 40%;
  }
}
@media (min-width: 64em) {
  .cs-container__aside {
    width: 32%;
  }
}
@media (min-width: 90em) {
  .cs-container__aside {
    width: 30%;
  }
}
.cs-container__main-column {
  width: 56%;
  position: relative;
}
@media (min-width: 64em) {
  .cs-container__main-column {
    width: 65%;
  }
}
@media (min-width: 90em) {
  .cs-container__main-column {
    width: 67%;
  }
}
@media (max-width: 47.99em) {
  .cs-container__main-column {
    max-width: 100% !important;
    width: 100% !important;
  }
}
@media (min-width: 64em) {
  .cs-container__main-column--space-top {
    padding-top: 3rem;
  }
}
.cs-container--contrast {
  background-color: #f4f4f4;
}
@media (min-width: 64em) {
  .cs-container--contrast {
    background-image: url("../images/background.png");
    background-size: cover;
    background-repeat: no-repeat;
  }
}
.cs-container--spacious {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
@media (min-width: 64em) {
  .cs-container--spacious {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}
.cs-container--noscroll {
  overflow: hidden;
}
.cs-container--ontop {
  z-index: 301;
}
.cs-container--viewport-width {
  max-width: none;
}
.cs-container--no-padding {
  padding-left: 0;
  padding-right: 0;
}
.cs-container--use-whole-screen .cs-container__inner {
  max-width: 100%;
}

.cms-page-view.page-layout-1column #maincontent {
  max-width: 180rem;
  margin: 0 auto;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #000;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center;
}
.cs-cookie-message--shown {
  display: none;
  opacity: 1;
  z-index: 202;
}
.cs-cookie-message__inner {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding-left: 8rem;
}
@media (min-width: 48em) {
  .cs-cookie-message__inner {
    flex-direction: row;
  }
}
.cs-cookie-message__button-wrapper {
  align-self: flex-start;
}
@media (min-width: 48em) {
  .cs-cookie-message__button-wrapper {
    align-self: unset;
  }
}
.cs-cookie-message__text {
  position: relative;
  margin: 0;
}
.cs-cookie-message__text .block-cms-link.widget,
.cs-cookie-message__text p {
  margin: 0;
  display: inline;
}
.cs-cookie-message__text a, .cs-cookie-message__text a:visited {
  color: #000000;
  text-decoration: none;
}
.cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
  color: #666;
  text-decoration: none;
}
.cs-cookie-message__icon {
  position: absolute;
  left: 0.5rem;
  width: 5.5rem;
  height: 5.5rem;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 48em) {
  .cs-cookie-message__icon {
    top: -3.5rem;
    transform: translateY(0);
  }
}
.cs-cookie-message__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  white-space: nowrap;
  margin-top: 1.2rem;
}
.cs-cookie-message__button:hover, .cs-cookie-message__button:focus, .cs-cookie-message__button:active {
  background-color: #000000 !important;
}
.cs-cookie-message__button:before, .cs-cookie-message__button:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-cookie-message__button:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-cookie-message__button:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-cookie-message__button:hover:after {
  width: calc(100% + 2px);
}
.cs-cookie-message__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-cookie-message__button, .cs-cookie-message__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-cookie-message__button *, .cs-cookie-message__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-cookie-message__button:hover:not([disabled]) *, .cs-cookie-message__button:focus:not([disabled]) *, .cs-cookie-message__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-cookie-message__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
@media (min-width: 48em) {
  .cs-cookie-message__button {
    margin-top: 0;
    margin-left: 1.2rem;
  }
}
.cs-cookie-message__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-cookie-message__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-dailydeal {
  display: none;
}
.cs-dailydeal__header {
  display: flex;
  width: 100%;
  margin: 0 0 0.5rem;
  font-size: 1.2rem;
  justify-content: space-between;
  align-items: flex-start;
}
.cs-dailydeal__title {
  margin: 0;
  text-transform: uppercase;
  font-weight: 600;
}
.cs-dailydeal__items-amount {
  font-weight: 600;
}
.cs-dailydeal__countdown {
  display: flex;
  margin: 0;
  justify-content: stretch;
  align-items: stretch;
}
.cs-dailydeal__countdown-element {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 0.3rem 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  background: none;
  border-radius: 0px;
}
.cs-dailydeal__countdown-element--special {
  width: 50%;
  background: #e41f12;
  z-index: 5;
}
.cs-dailydeal--teaser .cs-dailydeal__countdown-element {
  min-height: 4rem;
}
.cs-dailydeal__countdown-icon {
  width: 1.9rem;
  height: 2.4rem;
  fill: #fff;
}
.cs-dailydeal__countdown-value {
  display: block;
  font-size: 1.5rem;
  font-weight: 600;
  color: #e41f12;
  padding: 2px 0 0;
}
.cs-dailydeal__countdown-label {
  display: block;
  font-size: 1.1rem;
  font-weight: inherit;
  color: #888;
  padding: 2px 0 0;
}
.cs-dailydeal--tile {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 3;
}
.cs-dailydeal--tile .cs-dailydeal__availability {
  position: relative;
  background: #888;
  font-size: 1rem;
  color: #fff;
  padding: 2px 4px;
  z-index: 4;
  font-weight: 300;
  border-radius: 0px;
}
@media (max-width: 599px) {
  .cs-dailydeal--tile .cs-dailydeal__countdown-element {
    margin-left: 0;
    margin-right: 0;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child:not(:only-child) {
    margin-left: 0;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child .cs-dailydeal__countdown-value:after {
    content: none;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element--special {
    width: auto;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special) {
    border-radius: 0;
    width: auto;
    padding: 0;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):before {
    transform: none;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):nth-child(2) {
    padding-left: 1.8rem;
    margin-left: -1rem !important;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):last-child {
    padding-right: 0.8rem;
    border-radius: 0 0px 0px 0;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-value {
    font-size: 1.3rem;
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-value:after {
    content: ":";
  }
  .cs-dailydeal--tile .cs-dailydeal__countdown-label {
    display: none;
  }
}
.cs-dailydeal__badge-pdp-icon {
  width: 1.5rem;
  height: 1.5rem;
  z-index: 10;
  fill: #fff;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none;
  }
}
@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%;
}
@media (min-width: 64em) {
  .cs-dropdown-switcher {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
  }
  .cs-dropdown-switcher:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 1.3rem;
    content: "";
    border-left: 0.2rem solid #fff;
    display: block;
  }
}
@media (min-width: 64em) {
  .cs-dropdown-switcher--stores:before {
    display: none;
  }
}
.cs-dropdown-switcher__option-icon {
  min-width: 1.5rem;
  height: 1.5rem;
  margin-right: 0.6rem;
  margin-bottom: 0.2rem;
  display: inline-block;
}
@media (min-width: 64em) {
  .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
    width: 1.5rem;
  }
}
@media (min-width: 64em) {
  .cs-dropdown-switcher .switcher-options {
    display: flex;
  }
}
.cs-dropdown-switcher__trigger {
  padding: 2.4rem 2rem;
  font-size: 1.4rem;
  font-weight: 700;
  border-bottom: 1px #dcdcdc solid;
  position: relative;
  position: relative;
}
.cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
  content: "";
  position: absolute;
  top: 50%;
  width: 0.7rem;
  height: 0.1rem;
  left: auto;
  background-color: #000000;
  transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.cs-dropdown-switcher__trigger:before {
  transform: rotate(45deg) translate3d(0, 0, 0);
  right: 3rem;
}
.cs-dropdown-switcher__trigger:after {
  transform: rotate(-45deg) translate3d(0, 0, 0);
  right: 2.5rem;
}
.cs-dropdown-switcher__trigger.active:before {
  transform: rotate(-45deg);
}
.cs-dropdown-switcher__trigger.active:after {
  transform: rotate(45deg);
}
@media (min-width: 64em) {
  .cs-dropdown-switcher__trigger {
    height: 100%;
    display: inline-flex;
    align-items: center;
    margin-left: 2rem;
    font-size: 1.1rem;
    font-weight: 400;
    padding: 0 1.5rem 0 0;
    border-bottom: none;
    position: relative;
  }
  .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 0.7rem;
    height: 0.1rem;
    left: auto;
    background-color: #000;
    transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
  }
  .cs-dropdown-switcher__trigger:before {
    transform: rotate(45deg) translate3d(0, 0, 0);
    right: 0.5rem;
  }
  .cs-dropdown-switcher__trigger:after {
    transform: rotate(-45deg) translate3d(0, 0, 0);
    right: 0;
  }
  .cs-dropdown-switcher__trigger.active:before {
    transform: rotate(-45deg);
  }
  .cs-dropdown-switcher__trigger.active:after {
    transform: rotate(45deg);
  }
}
.active .cs-dropdown-switcher__trigger {
  background: transparent;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  border: none;
  position: relative;
  width: 100%;
}
@media (max-width: 63.99em) {
  .active .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    border-style: none;
  }
}
.cs-dropdown-switcher__trigger-span {
  display: flex;
  align-items: center;
}
.cs-dropdown-switcher__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: none;
  list-style: none;
  font-size: 1.1rem;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
  border-color: #f4f4f4;
  border-style: solid;
  border-width: 0 1px 1px;
  width: 100%;
}
@media (min-width: 64em) {
  .cs-dropdown-switcher__list {
    background: #fff;
    min-width: 100%;
    position: absolute;
    top: 100%;
    right: -1rem;
    left: 1rem;
  }
}
.cs-dropdown-switcher__list .cs-dropdown-switcher--currency {
  right: -1rem;
}
.active .cs-dropdown-switcher__list {
  display: block;
}
.cs-dropdown-switcher__list-item {
  margin: 0;
  white-space: nowrap;
}
.cs-dropdown-switcher__list-item-link {
  width: 100%;
  color: #212121 !important;
  display: flex;
  align-items: center;
}
.cs-dropdown-switcher__list-item-link:hover {
  background-color: #f4f4f4;
  text-decoration: none;
}
@media (max-width: 63.99em) {
  .cs-dropdown-switcher__list-item-link {
    padding: 1.4rem 2rem;
    font-size: 1.4rem;
  }
}
@media (min-width: 64em) {
  .cs-dropdown-switcher__list-item-link {
    padding: 0.6rem 1.8rem;
    font-size: 1.1rem;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%;
}
.cs-field__control,
.cs-input__control {
  width: 100%;
}
.cs-field__label,
.cs-input__label {
  font-weight: 700;
  font-size: 0.85em;
  width: 100%;
  text-transform: none;
  color: inherit;
}
.required .cs-field__label:after,
.required .cs-input__label:after {
  content: " *";
  color: #e41f12;
}
.cs-field__input, .cs-field__textarea,
.cs-input__input,
.cs-input__textarea {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
}
.cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
.cs-input__input:hover:not([disabled]),
.cs-input__input:focus:not([disabled]),
.cs-input__textarea:hover:not([disabled]),
.cs-input__textarea:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.cs-field__input::placeholder, .cs-field__textarea::placeholder,
.cs-input__input::placeholder,
.cs-input__textarea::placeholder {
  opacity: 1;
  color: #888;
}
.cs-field__input[disabled], .cs-field__textarea[disabled],
.cs-input__input[disabled],
.cs-input__textarea[disabled] {
  opacity: 0.65;
}
.cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
.cs-input__input.mage-error,
.cs-input__input.mage-error:hover:not(:focus),
.cs-input__textarea.mage-error,
.cs-input__textarea.mage-error:hover:not(:focus) {
  border: 1px solid #e41f12;
}
.cs-field__select,
.cs-input__select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #212121;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s;
}
.cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
.cs-input__select:-moz-focusring,
.cs-input__select::-moz-focus-inner {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
.cs-input__select:hover:not([disabled]),
.cs-input__select:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23000000'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
}
.cs-field__select[disabled],
.cs-input__select[disabled] {
  opacity: 0.65;
}
.cs-field__select option,
.cs-input__select option {
  font-weight: 500;
  padding: 0;
  color: initial;
}
.cs-field__radio,
.cs-input__radio {
  display: inline-block;
  height: 1em;
  width: 1em;
  margin: -0.0625em calc(0.5em + 1px) 0 0;
  font-size: 1em;
  overflow: hidden;
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  flex: 0 0 auto;
  cursor: pointer;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 1em 1em;
  outline: 0;
  border-radius: 50%;
  transition: background-color 0.5s, border-color 0.5s;
}
.cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
.cs-input__radio::-moz-focus-inner,
.cs-input__radio:-moz-focusring {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
.cs-input__radio:hover:not([disabled]),
.cs-input__radio:focus:not([disabled]) {
  border: 1px solid #666;
  box-shadow: none;
  background-color: transparent;
}
.cs-field__radio:checked,
.cs-input__radio:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23000000' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
}
.cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
.cs-input__radio:checked,
.cs-input__radio:checked:hover,
.cs-input__radio:checked:focus {
  border: 1px solid #000000;
  background-color: transparent;
  box-shadow: none;
}
.cs-field__radio[disabled], .cs-field__radio[disabled] + .label, .cs-field__radio[disabled] + .cs-input__label,
.cs-input__radio[disabled],
.cs-input__radio[disabled] + .label,
.cs-input__radio[disabled] + .cs-input__label {
  opacity: 0.65;
}
.cs-field__checkbox,
.cs-input__checkbox {
  display: inline-block;
  height: 1em;
  width: 1em;
  margin: -0.0625em calc(0.5em + 1px) 0 0;
  font-size: 1em;
  overflow: hidden;
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  flex: 0 0 auto;
  cursor: pointer;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 1em 1em;
  outline: 0;
  border-radius: 50%;
  transition: background-color 0.5s, border-color 0.5s;
  border-radius: 0px;
  background-size: 1em 1em;
}
.cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
.cs-input__checkbox::-moz-focus-inner,
.cs-input__checkbox:-moz-focusring {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
.cs-input__checkbox:hover:not([disabled]),
.cs-input__checkbox:focus:not([disabled]) {
  border: 1px solid #666;
  box-shadow: none;
  background-color: transparent;
}
.cs-field__checkbox:checked,
.cs-input__checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23000000' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
}
.cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
.cs-input__checkbox:checked,
.cs-input__checkbox:checked:hover,
.cs-input__checkbox:checked:focus {
  border: 1px solid #000000;
  background-color: transparent;
  box-shadow: none;
}
.cs-field__checkbox[disabled], .cs-field__checkbox[disabled] + .label, .cs-field__checkbox[disabled] + .cs-input__label,
.cs-input__checkbox[disabled],
.cs-input__checkbox[disabled] + .label,
.cs-input__checkbox[disabled] + .cs-input__label {
  opacity: 0.65;
}
.cs-field__checkbox:checked,
.cs-input__checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23000000' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e");
}
.cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
.cs-input__checkbox.mage-error,
.cs-input__checkbox.mage-error:hover:not(:focus) {
  border: 1px solid #e41f12;
}
.cs-field__icon,
.cs-input__icon {
  position: absolute;
  width: 1.3em;
  height: 1.3em;
  right: 0.8em;
  top: 0.8em;
  display: none;
}
.cs-field__note,
.cs-input__note {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
}
.cs-field__error,
.cs-input__error {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
  color: #e41f12;
}

.field {
  font-size: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%;
}
.field._success:not(._warn) .control {
  position: relative;
}
.field._success:not(._warn) .control:after {
  position: absolute;
  width: 1.3em;
  height: 1.3em;
  right: 0.8em;
  top: 0.8em;
  display: none;
  background: url("../images/check-green.svg") no-repeat center center/contain;
  content: "";
}
.field .control {
  width: 100%;
}
.field .control > textarea {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
}
.field .control > textarea:hover:not([disabled]), .field .control > textarea:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.field .control > textarea::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.field .control > textarea::placeholder {
  opacity: 1;
  color: #888;
}
.field .control > textarea[disabled] {
  opacity: 0.65;
}
.field .label {
  font-weight: 700;
  font-size: 0.85em;
  width: 100%;
  text-transform: none;
  color: inherit;
}
.field.choice label.label {
  width: auto;
  margin-bottom: 0;
}
.field.required > .label:after, .field._required > .label:after {
  content: " *";
  color: #e41f12;
}
.field.required ._required > .label:after {
  display: none;
}
.field .input-text {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
}
.field .input-text:hover:not([disabled]), .field .input-text:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.field .input-text::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.field .input-text::placeholder {
  opacity: 1;
  color: #888;
}
.field .input-text[disabled] {
  opacity: 0.65;
}
.field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
  border: 1px solid #e41f12;
}
.field .input-text.required-entry {
  margin-bottom: 1rem;
}
.field .select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #212121;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s;
}
.field .select:-moz-focusring, .field .select::-moz-focus-inner {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.field .select:hover:not([disabled]), .field .select:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23000000'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
}
.field .select[disabled] {
  opacity: 0.65;
}
.field .select option {
  font-weight: 500;
  padding: 0;
  color: initial;
}
.field .checkbox {
  display: inline-block;
  height: 1em;
  width: 1em;
  margin: -0.0625em calc(0.5em + 1px) 0 0;
  font-size: 1em;
  overflow: hidden;
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  flex: 0 0 auto;
  cursor: pointer;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 1em 1em;
  outline: 0;
  border-radius: 50%;
  transition: background-color 0.5s, border-color 0.5s;
  border-radius: 0px;
  background-size: 1em 1em;
}
.field .checkbox::-moz-focus-inner, .field .checkbox:-moz-focusring {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.field .checkbox:hover:not([disabled]), .field .checkbox:focus:not([disabled]) {
  border: 1px solid #666;
  box-shadow: none;
  background-color: transparent;
}
.field .checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23000000' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
}
.field .checkbox:checked, .field .checkbox:checked:hover, .field .checkbox:checked:focus {
  border: 1px solid #000000;
  background-color: transparent;
  box-shadow: none;
}
.field .checkbox[disabled], .field .checkbox[disabled] + .label, .field .checkbox[disabled] + .cs-input__label {
  opacity: 0.65;
}
.field .checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23000000' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e");
}
.field .checkbox.mage-error, .field .checkbox.mage-error:hover:not(:focus) {
  border: 1px solid #e41f12;
}
.field .radio {
  display: inline-block;
  height: 1em;
  width: 1em;
  margin: -0.0625em calc(0.5em + 1px) 0 0;
  font-size: 1em;
  overflow: hidden;
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  flex: 0 0 auto;
  cursor: pointer;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 1em 1em;
  outline: 0;
  border-radius: 50%;
  transition: background-color 0.5s, border-color 0.5s;
}
.field .radio::-moz-focus-inner, .field .radio:-moz-focusring {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.field .radio:hover:not([disabled]), .field .radio:focus:not([disabled]) {
  border: 1px solid #666;
  box-shadow: none;
  background-color: transparent;
}
.field .radio:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23000000' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
}
.field .radio:checked, .field .radio:checked:hover, .field .radio:checked:focus {
  border: 1px solid #000000;
  background-color: transparent;
  box-shadow: none;
}
.field .radio[disabled], .field .radio[disabled] + .label, .field .radio[disabled] + .cs-input__label {
  opacity: 0.65;
}
.field.customer-name-prefix select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #212121;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s;
}
.field.customer-name-prefix select:-moz-focusring, .field.customer-name-prefix select::-moz-focus-inner {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.field.customer-name-prefix select:hover:not([disabled]), .field.customer-name-prefix select:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23000000'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
}
.field.customer-name-prefix select[disabled] {
  opacity: 0.65;
}
.field.customer-name-prefix select option {
  font-weight: 500;
  padding: 0;
  color: initial;
}
.field.field-dob input {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
}
.field.field-dob input:hover:not([disabled]), .field.field-dob input:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.field.field-dob input::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.field.field-dob input::placeholder {
  opacity: 1;
  color: #888;
}
.field.field-dob input[disabled] {
  opacity: 0.65;
}
.field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
  border: 1px solid #e41f12;
}
.field.field-dob button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.field.field-dob button::before, .field.field-dob button::after {
  content: none;
}
.field.field-dob button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.field.field-dob button, .field.field-dob button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.field.field-dob button *, .field.field-dob button:visited * {
  color: #000000;
  fill: #000000;
}
.field.field-dob button:hover:not([disabled]), .field.field-dob button:focus:not([disabled]), .field.field-dob button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.field.field-dob button:hover:not([disabled]) *, .field.field-dob button:focus:not([disabled]) *, .field.field-dob button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.field.field-dob button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.field.field-dob button span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.field._error .input-text, .field._error .input-text:hover:not(:focus),
.field._error .checkbox,
.field._error .checkbox:hover:not(:focus) {
  border: 1px solid #e41f12;
}
.field .control._with-tooltip input {
  width: 100%;
  margin-right: 0;
}
.field .field-tooltip {
  position: static;
}
.field .field-tooltip .label,
.field .field-tooltip .field-tooltip-action {
  display: none;
}
.field .field-tooltip .field-tooltip-content {
  position: static;
  background: none;
  border: none;
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
}
.field .field-tooltip .field-tooltip-content:before, .field .field-tooltip .field-tooltip-content:after {
  display: none;
}
.field .note {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
}

div.mage-error,
div.field-error {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
  color: #e41f12;
}

/* stylelint-enable */
/**
 * Footer component customization.
 * @see /Magento_Theme/templates/footer/columns.phtml for templates.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-footer {
  font-size: 1rem;
  color: #484848;
  background: #f4f4f4;
  overflow: hidden;
  padding: 0 0 2rem;
  margin-top: 4rem;
}
@media (min-width: 48em) {
  .cs-footer {
    padding: 0 1.5rem;
  }
}
.cs-footer__content {
  padding: 0;
}
@media (min-width: 48em) {
  .cs-footer__content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    padding-top: 4rem;
    padding-bottom: 2.5rem;
  }
}
@media (min-width: 64em) {
  .cs-footer__content {
    flex-wrap: nowrap;
  }
}
@media (max-width: 47.99em) {
  .cs-footer__item--promo {
    display: none;
  }
}
@media (max-width: 63.99em) {
  .cs-footer__item--promo {
    margin-bottom: 1.5rem;
  }
}
@media (min-width: 48em) {
  .cs-footer__item--links {
    display: flex;
    margin-top: 2em;
  }
}
@media (min-width: 48em) {
  .cs-footer__item--links {
    margin-top: 0;
  }
}
@media (min-width: 64em) {
  .cs-footer__item--extras {
    display: block;
  }
}
@media (min-width: 64em) {
  .cs-footer__section--socials {
    margin-top: 4rem;
  }
}
@media (min-width: 64em) {
  .cs-footer__section--stores-switcher {
    margin-top: 4rem;
    max-width: 20rem;
  }
}
.cs-footer__section-title,
.cs-footer [data-role=title] {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
  position: relative;
  margin: 0;
  border-top: 1px solid #888;
  padding: 2rem;
  color: #888;
  font-size: 1.2em;
  font-weight: 400;
  text-transform: uppercase;
}
@media (max-width: 47.99em) {
  .cs-footer__section--collapsible .cs-footer__section-title,
.cs-footer__section--collapsible .cs-footer [data-role=title] {
    cursor: pointer;
    position: relative;
  }
  .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after,
.cs-footer__section--collapsible .cs-footer [data-role=title]:before,
.cs-footer__section--collapsible .cs-footer [data-role=title]:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 1.2rem;
    height: 0.2rem;
    left: auto;
    background-color: #888;
    transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
  }
  .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after,
.cs-footer__section--collapsible .cs-footer [data-role=title]:before,
.cs-footer__section--collapsible .cs-footer [data-role=title]:after {
    right: 1.5rem;
    transform: translate3d(0, -50%, 0) !important;
  }
  .cs-footer__section--collapsible .cs-footer__section-title:after,
.cs-footer__section--collapsible .cs-footer [data-role=title]:after {
    transform: translate3d(0, -50%, 0) rotate(90deg) !important;
  }
  .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded=true]:before,
.cs-footer__section--collapsible .cs-footer [data-role=title][aria-expanded=true]:before {
    transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
    opacity: 0;
  }
  .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded=true]:after,
.cs-footer__section--collapsible .cs-footer [data-role=title][aria-expanded=true]:after {
    transform: translate3d(0, -50%, 0) rotate(0) !important;
  }
  .cs-footer__section--socials .cs-footer__section-title,
.cs-footer__section--socials .cs-footer [data-role=title] {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
}
@media (min-width: 48em) {
  .cs-footer__section-title,
.cs-footer [data-role=title] {
    border-top: none;
    padding-left: 0;
  }
}
@media (min-width: 64em) {
  .cs-footer__section-title,
.cs-footer [data-role=title] {
    padding-top: 0;
    padding-right: 0;
  }
}
.cs-footer__section-content,
.cs-footer [data-role=content] {
  padding: 0 1.5rem 1.5rem;
  font-size: 1.2em;
}
@media (max-width: 47.99em) {
  .cs-footer__section--collapsible .cs-footer__section-content,
.cs-footer__section--collapsible .cs-footer [data-role=content] {
    display: none;
  }
}
@media (min-width: 48em) {
  .cs-footer__section-content,
.cs-footer [data-role=content] {
    padding-left: 0;
  }
}
@media (min-width: 64em) {
  .cs-footer__section-content,
.cs-footer [data-role=content] {
    padding-right: 0;
    padding-bottom: 0;
  }
}
.cs-footer__shop-logo {
  display: block;
  width: 13.5em;
  height: 2.3em;
  min-width: 13.5em;
  max-width: 100%;
  max-height: 100%;
}

.cs-container--footer {
  max-width: none;
}
.cs-container--footer-usps .cs-image-teaser__content {
  margin: 0 !important;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-footer-links {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cs-footer-links__item {
  margin: 0 0 0.3em;
}
.cs-footer-links a, .cs-footer-links a:visited {
  color: #484848;
  text-decoration: none;
}
.cs-footer-links a:hover, .cs-footer-links a:focus, .cs-footer-links a:active, .cs-footer-links a:visited:hover, .cs-footer-links a:visited:focus {
  color: #484848;
  text-decoration: underline;
}
.cs-footer-links a, .cs-footer-links a:visited {
  display: block;
  padding: 0.5em 0;
  font-size: inherit;
}
@media (min-width: 48em) {
  .cs-footer-links a, .cs-footer-links a:visited {
    padding: 0.35em 0;
    display: inline-block;
  }
}

.cs-footer__item.cs-footer__item--links {
  width: 100%;
}
.cs-footer__item.cs-footer__item--links .cs-footer__section-title {
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-size: 2rem;
  text-transform: uppercase;
  padding-bottom: 2rem;
}
.cs-footer__item.cs-footer__item--links .cs-footer__section-title .news {
  color: pink;
  text-transform: lowercase;
}
.cs-footer__item.cs-footer__item--links .cs-footer-links .nav-link {
  font-size: 1.4rem;
}
.cs-footer__item.cs-footer__item--links .footer__delivery_method,
.cs-footer__item.cs-footer__item--links .footer__payment_method {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
}
.cs-footer__item.cs-footer__item--links .footer__delivery_method .footer__delivery_method_item,
.cs-footer__item.cs-footer__item--links .footer__delivery_method .footer__payment_method_item,
.cs-footer__item.cs-footer__item--links .footer__payment_method .footer__delivery_method_item,
.cs-footer__item.cs-footer__item--links .footer__payment_method .footer__payment_method_item {
  margin-right: 1rem;
}
.cs-footer__item.cs-footer__item--links .cs-footer__section.social .cs-footer__section-content {
  display: flex;
}
.cs-footer__item.cs-footer__item--links .cs-footer__section.social .cs-footer__section-content .footer-social-inner {
  filter: grayscale(1);
  margin-right: 1rem;
}
.cs-footer__item.cs-footer__item--links .cs-footer__section.social .cs-footer__section-content h3 {
  padding-left: 0px;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-size: 2rem;
  text-transform: uppercase;
  padding-bottom: 2rem;
}
@media (min-width: 48em) {
  .cs-footer__item.cs-footer__item--links {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 1rem;
    grid-row-gap: 0px;
  }
  .cs-footer__item.cs-footer__item--links .cs-footer__section--collapsible:nth-child(1) {
    grid-area: 1/1/2/2;
  }
  .cs-footer__item.cs-footer__item--links .cs-footer__section--collapsible:nth-child(2) {
    grid-area: 2/1/3/2;
  }
  .cs-footer__item.cs-footer__item--links .cs-footer__section--collapsible:nth-child(3) {
    grid-area: 1/2/3/3;
  }
  .cs-footer__item.cs-footer__item--links .cs-footer__section--collapsible:nth-child(4) {
    grid-area: 1/3/2/4;
  }
  .cs-footer__item.cs-footer__item--links .cs-footer__section--collapsible:nth-child(5) {
    grid-area: 2/3/3/4;
  }
  .cs-footer__item.cs-footer__item--links .cs-footer__section--collapsible:nth-child(6) {
    grid-area: 1/4/3/5;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-google-recaptcha {
  margin: 1rem 0;
}
.cs-google-recaptcha__badge--invisible .grecaptcha-badge {
  visibility: hidden;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden;
}
.cs-google-recaptcha__note {
  display: inline-block;
  margin: 0;
  font-size: 1.2rem;
  color: #696969;
}
.cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
  color: #000000;
  text-decoration: none;
}
.cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
  color: #666;
  text-decoration: none;
}
.cs-google-recaptcha--newsletter {
  display: none;
  margin: 1rem 0;
}
.cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
  margin: 0;
  font-size: 1.2rem;
  color: #fff;
}
.cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
  color: #fff;
  text-decoration: none;
}
.cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
  color: #fff;
  text-decoration: underline;
}
.cs-google-recaptcha--customer_create {
  margin-top: -2rem;
}
.cs-google-recaptcha--customer_login .g-recaptcha {
  margin-bottom: 0 !important;
}
/*
 * Fair warning: Don't mix units while using 'utils/poly-fluid-sizing' feature.
 * If you use rems, stick to rems everywhere in the area of whole map, or else the mixin will throw an error
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-grid-layout__grid {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  gap: 0;
  position: relative;
}
@media (min-width: 23.125em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}
@media (min-width: 30em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 48em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 80em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 90em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 120em) {
  .cs-grid-layout__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 23.125em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}
@media (min-width: 30em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 48em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 80em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 90em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 120em) {
  .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.cs-grid-layout__brick {
  width: 100%;
  padding: 1px;
  margin: 0;
  overflow: hidden;
}
.cs-grid-layout__brick--x2 {
  aspect-ratio: 6/5;
}
.cs-grid-layout__brick--y2 {
  aspect-ratio: 3/10;
}
.cs-grid-layout__brick--x2.cs-grid-layout__brick--y2 {
  aspect-ratio: 6/10;
}
@media (min-width: 30em) {
  .cs-grid-layout__brick--x2 {
    grid-column-end: span 2;
  }
  .cs-grid-layout__brick--y2 {
    grid-row-end: span 2;
  }
}
@media (min-width: 48em) {
  .cs-grid-layout__brick--x2 {
    grid-column-end: span 2;
  }
  .cs-grid-layout__brick--y2 {
    grid-row-end: span 2;
  }
}
@media (min-width: 64em) {
  .cs-grid-layout__brick--x2 {
    grid-column-end: span 2;
  }
  .cs-grid-layout__brick--y2 {
    grid-row-end: span 2;
  }
}
@media (min-width: 80em) {
  .cs-grid-layout__brick--x2 {
    grid-column-end: span 2;
  }
  .cs-grid-layout__brick--y2 {
    grid-row-end: span 2;
  }
}
@media (min-width: 90em) {
  .cs-grid-layout__brick--x2 {
    grid-column-end: span 2;
  }
  .cs-grid-layout__brick--y2 {
    grid-row-end: span 2;
  }
}
@media (min-width: 120em) {
  .cs-grid-layout__brick--x2 {
    grid-column-end: span 2;
  }
  .cs-grid-layout__brick--y2 {
    grid-row-end: span 2;
  }
}
.cs-grid-layout__brick--hidden {
  display: none !important;
}
@media (max-width: 29.99em) {
  .cs-grid-layout__brick--teaser:before {
    padding-top: 0;
  }
}
.cs-grid-layout__teaser {
  overflow: hidden;
}
.cs-grid-layout__teaser-content-wrapper {
  display: flex;
  width: 100%;
  height: 100%;
}
.cs-grid-layout__teaser-figure {
  position: relative;
  width: 100%;
  height: 100%;
}
.cs-grid-layout__teaser-image {
  min-width: 100%;
  min-height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}
.cs-grid-layout__teaser-content {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  line-height: 1.15;
}
.cs-grid-layout__teaser-content-inner {
  max-width: 100%;
}
.cs-grid-layout__teaser-headline {
  margin: 0 0 0.2em;
  color: #212121;
  font-weight: 600;
  text-transform: none;
  font-size: 1.8rem;
}
@media (min-width: 32rem) {
  .cs-grid-layout__teaser-headline {
    font-size: calc(0.6756756757vw + 1.5837837838rem);
  }
}
@media (min-width: 180rem) {
  .cs-grid-layout__teaser-headline {
    font-size: 2.8rem;
  }
}
.cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
  margin: 0 0 0.2em;
  font-size: 1.8rem;
}
@media (min-width: 32rem) {
  .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
    font-size: calc(1.4864864865vw + 1.3243243243rem);
  }
}
@media (min-width: 180rem) {
  .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
    font-size: 4rem;
  }
}
.cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-headline {
  color: #fff;
}
.cs-grid-layout__teaser-subheadline {
  display: block;
  margin: 0 0 0.6em;
  color: #212121;
  font-weight: 400;
  text-transform: none;
  font-size: 1.6rem;
}
@media (min-width: 32rem) {
  .cs-grid-layout__teaser-subheadline {
    font-size: calc(0.1351351351vw + 1.5567567568rem);
  }
}
@media (min-width: 180rem) {
  .cs-grid-layout__teaser-subheadline {
    font-size: 1.8rem;
  }
}
.cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
  margin: 0 0 0.6em;
  font-size: 1.6rem;
}
@media (min-width: 32rem) {
  .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
    font-size: calc(0.6081081081vw + 1.4054054054rem);
  }
}
@media (min-width: 180rem) {
  .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
    font-size: 2.5rem;
  }
}
.cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-subheadline {
  color: #fff;
}
.cs-grid-layout__teaser-text {
  margin: 0 0 1em;
  color: #212121;
  font-weight: 400;
  text-transform: none;
  font-size: 1.3rem;
}
@media (min-width: 32rem) {
  .cs-grid-layout__teaser-text {
    font-size: calc(0.0675675676vw + 1.2783783784rem);
  }
}
@media (min-width: 180rem) {
  .cs-grid-layout__teaser-text {
    font-size: 1.4rem;
  }
}
.cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
  margin: 0 0 1em;
  font-size: 1.3rem;
}
@media (min-width: 32rem) {
  .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
    font-size: calc(0.2027027027vw + 1.2351351351rem);
  }
}
@media (min-width: 180rem) {
  .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
    font-size: 1.6rem;
  }
}
.cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-text {
  color: #fff;
}
.cs-grid-layout__teaser-cta-button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-grid-layout__teaser-cta-button:hover, .cs-grid-layout__teaser-cta-button:focus, .cs-grid-layout__teaser-cta-button:active {
  background-color: #000000 !important;
}
.cs-grid-layout__teaser-cta-button:before, .cs-grid-layout__teaser-cta-button:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-grid-layout__teaser-cta-button:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-grid-layout__teaser-cta-button:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-grid-layout__teaser-cta-button:hover:after {
  width: calc(100% + 2px);
}
.cs-grid-layout__teaser-cta-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-grid-layout__teaser-cta-button, .cs-grid-layout__teaser-cta-button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-grid-layout__teaser-cta-button *, .cs-grid-layout__teaser-cta-button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-grid-layout__teaser-cta-button:hover:not([disabled]), .cs-grid-layout__teaser-cta-button:focus:not([disabled]), .cs-grid-layout__teaser-cta-button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-grid-layout__teaser-cta-button:hover:not([disabled]) *, .cs-grid-layout__teaser-cta-button:focus:not([disabled]) *, .cs-grid-layout__teaser-cta-button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-grid-layout__teaser-cta-button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-grid-layout__teaser-cta-button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-grid-layout__teaser-cta-button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}
.cs-grid-layout, .cs-grid-layout__brick {
  position: relative;
}
.cs-grid-layout:after, .cs-grid-layout__brick:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  content: "";
  background: #f4f4f4;
}
.cs-grid-layout {
  margin-bottom: -1px;
}
.cs-grid-layout:after {
  background: #fff;
}

.cs-container--grid-teaser {
  width: 100%;
  height: 100%;
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  overflow: visible;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Variables related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 * If you have more elements on top, you have to include their height.
 */
@media (max-width: 63.99em) {
  .cs-container--header {
    padding-left: 0;
    padding-right: 0;
  }
}

/**
 * Styles related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 */
@media (max-width: 63.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 8.3rem;
  }
}
@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem;
  }
}

@media (max-width: 63.99em) {
  .cs-container--header {
    position: sticky;
    z-index: 800;
    top: 0;
    /**
     * Fixed positioning required to work with offcanvas elements.
     * Also, as a fallback for IE which does not support sticky.
     */
  }
  .navigation-offcanvas-open.no-scroll .cs-container--header,
.cs-container--header .ie11 {
    position: fixed;
  }
}
@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0;
  }
}

.cs-header {
  font-size: 1rem;
  height: 5rem;
}
@media (min-width: 48em) {
  .cs-header {
    height: 8.3rem;
  }
}
@media (min-width: 80em) {
  .cs-header {
    height: 11rem;
  }
}
.cs-header__content {
  height: 5rem;
  z-index: 300;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  background-color: #fff;
  position: relative;
  max-width: 100vw;
}
@media (min-width: 48em) {
  .cs-header__content {
    height: 8.3rem;
  }
}
@media (min-width: 64em) {
  .cs-header__content {
    border-bottom: 1px solid #f4f4f4;
    flex-wrap: nowrap;
  }
}
@media (min-width: 80em) {
  .cs-header__content {
    height: 11rem;
  }
}
.cs-header__offcanvas-toggle {
  height: 100%;
  flex: 0 1 4rem;
}
@media (min-width: 64em) {
  .cs-header__offcanvas-toggle {
    display: none;
  }
}
.cs-header__logo {
  display: flex;
  flex: 1 1;
  margin-bottom: 0;
  height: 100%;
  padding: 0.7rem 0 0.7rem 0.7rem;
}
@media (min-width: 23.125em) {
  .cs-header__logo {
    padding: 0.7rem 0 0.7rem 1.5rem;
  }
}
@media (min-width: 48em) {
  .cs-header__logo {
    flex: 0 1 auto;
    padding: 0;
  }
}
.page-print .cs-header__logo {
  max-width: 180rem;
  width: 100%;
  margin: 0 auto;
  position: relative;
  height: auto;
  padding: 2rem 0;
}
.page-print .cs-header__logo:after {
  content: "";
  display: table;
  clear: both;
}
.cs-header__search {
  display: none;
  width: 100%;
  background-color: #fff;
  padding: 1rem;
  position: absolute;
  left: 0;
  right: 0;
  z-index: 300;
  top: 100%;
}
@media (min-width: 64em) {
  .cs-header__search {
    flex-grow: 1;
    width: auto;
    padding: 0;
    position: initial;
    justify-content: center;
  }
}
.cs-header__search--active {
  display: flex;
}
.cs-header__user-nav {
  display: flex;
  justify-content: flex-end;
  flex: 0 1 30%;
}
.cs-header__back-button {
  border-right: 1px solid #dcdcdc;
  height: 100%;
  display: flex;
  padding: 0 1rem;
  align-items: center;
  justify-content: center;
  min-width: 4rem;
}
@media (min-width: 23.125em) {
  .cs-header__back-button {
    padding: 0 1.5rem;
  }
}
@media (min-width: 48em) {
  .cs-header__back-button {
    display: none;
  }
}
.cs-header__back-button-icon {
  fill: #888;
  height: 2.5rem;
}
@media (max-width: 23.115em) {
  .cs-header__back-button-icon {
    height: 2rem;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-header-search {
  width: 100%;
}
@media (min-width: 64em) {
  .cs-header-search {
    width: 100%;
  }
}
.cs-header-search--in-offcanvas {
  position: relative;
}
.cs-header-search__label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-header-search__field {
  position: relative;
}
.cs-header-search__field:before, .cs-header-search__field:after {
  content: "";
  position: absolute;
  opacity: 0;
  transition: opacity 0.3s;
  left: -0.5rem;
  right: -0.5rem;
  background: #fff;
}
.cs-header-search__field:before {
  content: "";
  position: absolute;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
  top: -0.5rem;
  bottom: -0.5rem;
  border-radius: 5px 5px 0 0;
}
.cs-header-search__field:after {
  content: "";
  position: absolute;
  bottom: -1rem;
  top: 100%;
  z-index: 209;
}
.active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
  opacity: 1;
}
.cs-header-search__input {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
  font-size: 1.6rem;
  position: relative;
  z-index: 210;
  margin: 0;
  -webkit-appearance: none;
}
.cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.cs-header-search__input::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.cs-header-search__input::placeholder {
  opacity: 1;
  color: #888;
}
.cs-header-search__input[disabled] {
  opacity: 0.65;
}
@media (min-width: 30em) {
  .cs-header-search__input {
    font-size: 1.4rem;
  }
}
.ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
  transform: translateX(100%);
  opacity: 0;
}
.ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
  transform: translateX(0);
  opacity: 1;
}
.cs-header-search__action {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 220;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
.cs-header-search__close-icon {
  width: 1.5rem;
  height: 1.5rem;
  margin-right: 1rem;
  display: block;
  opacity: 0.6;
  transition: opacity 0.3s linear;
}
.cs-header-search__close-icon:hover {
  cursor: pointer;
  opacity: 1;
}
.cs-header-search__close-icon path {
  fill: #888;
}
.cs-header-search__close-label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-header-search__button-container {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear;
}
.cs-header-search__button-container--search {
  transform: translateX(0);
}
.cs-header-search__button-container--loader {
  transform: translateX(100%);
}
.cs-header-search__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 5rem;
  height: 100%;
  overflow: hidden;
  position: relative;
  border-radius: 0 !important;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transform: translateX(0.7rem);
}
.cs-header-search__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-header-search__button, .cs-header-search__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-header-search__button *, .cs-header-search__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-header-search__button:hover:not([disabled]) *, .cs-header-search__button:focus:not([disabled]) *, .cs-header-search__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-header-search__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-header-search__button[disabled] {
  opacity: 1;
}
.cs-header-search__button-icon {
  transform: translateX(-0.3rem);
}
.cs-header-search__button-icon--search {
  width: 2rem;
  height: 2rem;
}
.cs-header-search__button-icon--search path {
  fill: #fff;
}
.cs-header-search__button-icon--loader {
  stroke: #fff;
  width: 3.2rem;
  height: 3.2rem;
}
.cs-header-search__button-label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-header-search__autocomplete {
  width: calc(100% - 1rem);
  left: 0.5rem;
  right: 0.5rem;
}
@media (max-width: 47.99em) {
  .cs-header-search__autocomplete {
    max-height: calc(100vh - 5rem - 1.275em - 7rem);
    overflow-y: auto;
  }
}
@media (min-width: 64em) {
  .cs-header-search__autocomplete {
    margin-top: 0.5rem;
    left: 50%;
    transform: translateX(-50%);
    box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
    border: 0;
    width: 100%;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%;
}
@media (max-width: 23.115em) {
  .cs-header-user-nav {
    padding: 0 0.7rem;
  }
}
.cs-header-user-nav__item {
  margin-bottom: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: 1 1 25%;
}
.cs-header-user-nav__link {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex-direction: column;
  position: relative;
  width: 100%;
  padding: 1rem;
}
@media (max-width: 48em) {
  .cs-header-user-nav__link {
    align-items: center;
  }
}
.cs-header-user-nav__link:hover {
  text-decoration: none;
}
.cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
  fill: #000000;
}
.cs-header-user-nav__link:hover .cs-header-user-nav__label {
  color: #696969;
}
.cs-header-user-nav__link--search:hover {
  cursor: pointer;
}
.cs-header-user-nav__icon-wrapper {
  position: relative;
}
.cs-header-user-nav__icon {
  width: 1.6rem;
  height: 1.6rem;
  display: block;
  margin: 0 auto;
}
.cs-header-user-nav__icon path {
  fill: #484848;
}
.cs-header-user-nav__label {
  text-transform: uppercase;
  font-size: 1rem;
  font-weight: 300;
  margin-top: 0.3rem;
  color: #696969;
  text-decoration: none;
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
@media (min-width: 48em) {
  .cs-header-user-nav__label {
    clip: auto;
    -webkit-clip-path: none;
            clip-path: none;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: static;
    width: auto;
    white-space: normal;
  }
}
.cs-header-user-nav__qty-counter {
  display: inline-flex;
  background-color: #000000;
  color: #fff;
  border: 0;
  border-radius: 0.2rem;
  padding: 0 0.6rem;
  position: relative;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  line-height: 100%;
  font-weight: 700;
  height: 1.8em;
  background-clip: padding-box;
  position: absolute;
  right: -0.5rem;
  top: -0.5rem;
  transition: opacity 0.3s;
}
@media (min-width: 48em) {
  .cs-header-user-nav__qty-counter {
    right: -1rem;
  }
}
.cs-header-user-nav__qty-counter--wishlist {
  background-color: #000;
  color: #000;
  transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
}
.cs-header-user-nav__qty-counter--minicart {
  background-color: #e41f12;
  color: #fff;
  border-radius: 50% !important;
}
.cs-header-user-nav__qty-counter--compare {
  background-color: #000;
  color: #000;
}
.cs-header-user-nav__qty-counter--have-items {
  opacity: 1;
}
.cs-header-user-nav__qty-counter--wishlist-cloned {
  position: fixed;
  z-index: 1200;
  right: auto;
  opacity: 1;
  transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
}
.cs-header-user-nav__qty-counter--wishlist-animating {
  animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
  top: 0.5rem;
}
@media (min-width: 48em) {
  .cs-header-user-nav__qty-counter--wishlist-animating {
    top: 1.3rem;
  }
}
@media (min-width: 64em) {
  .cs-header-user-nav__qty-counter--wishlist-animating {
    top: 3.5rem;
  }
}
@keyframes move-qty-badge {
  0% {
    opacity: 1;
  }
  15% {
    transform: scale(1);
  }
  85% {
    opacity: 1;
    transform: scale(1.5);
  }
  95% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}
.cs-header-user-nav__qty-counter-span {
  min-width: 1ch;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 2em 0;
  margin: 2em 0;
  margin: 0;
  padding: 0;
  margin: 0 0 3rem;
}
@media (min-width: 48em) {
  .cs-headline {
    margin: 0 0 4rem;
  }
}
.cs-headline--skip-spacing {
  margin: 0;
}
.cs-headline__title {
  display: block;
  text-align: center;
  align-items: center;
  margin: 0;
  font-size: 2.6em;
  font-weight: 700;
  color: #212121;
  text-transform: uppercase;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
}
@media (min-width: 48em) {
  .cs-headline__title {
    display: flex;
  }
}
.cs-headline__title:before, .cs-headline__title:after {
  content: "";
  display: none;
  height: 1px;
  flex-grow: 1;
  background-color: #dcdcdc;
}
@media (min-width: 48em) {
  .cs-headline__title:before, .cs-headline__title:after {
    display: flex;
  }
}
.cs-headline__title:before {
  margin-right: 0.6em;
}
.cs-headline__title:after {
  margin-left: 0.6em;
}
.cs-headline__subtitle {
  color: #888;
  font-size: 1.3em;
  font-weight: 400;
  text-transform: none;
  margin: 0;
  display: none;
  text-align: center;
}
@media (min-width: 48em) {
  .cs-headline__subtitle {
    display: block;
  }
}
.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001;
}

.lazyload[data-bg] {
  opacity: 1;
}

.lazyloaded,
.swiper-lazy-loaded {
  opacity: 1;
  transition: opacity 0.2s;
}

.cs-image-teaser__image.lazyload:not(.lazyloaded) {
  height: 1px;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
}
.page-product-bundle .cs-links-block-addto {
  margin-top: 1rem;
}
.cs-product-tile__addon .cs-links-block-addto {
  padding-top: 0;
}
.cs-links-block-addto--centered {
  justify-content: center;
}
.cs-links-block-addto__item {
  margin: 0;
}
.cs-links-block-addto__item + .cs-links-block-addto__item {
  margin-left: 0.5rem;
}
.cs-product-tile--list .cs-links-block-addto__item + .cs-links-block-addto__item {
  margin-left: 0;
  margin-top: 0.5rem;
}
.cs-links-block-addto__link {
  display: flex;
  align-items: center;
  font-size: 1.2rem;
  color: #666;
  transition: color 0.15s linear;
}
.cs-links-block-addto__link:hover {
  color: #666;
  text-decoration: none;
}
.cs-links-block-addto__icon {
  width: 1.375em;
  height: 1.375em;
  margin-right: 0.4rem;
}
.cs-links-block-addto__icon path {
  fill: #888;
}
.cs-links-block-addto__icon--wishlist path {
  fill: #e41f12;
}
.cs-links-block-addto__icon--compare path {
  fill: #000000;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-logo {
  height: 100%;
}
.cs-logo__image {
  height: 100%;
}
.cs-logo__image--desktop {
  display: none;
}
.checkout-index-index .cs-logo__image--desktop {
  display: block;
}
@media (min-width: 48em) {
  .cs-logo__image--desktop {
    display: block;
  }
}
.cs-logo__image--mobile {
  display: block;
}
@media (min-width: 48em) {
  .cs-logo__image--mobile {
    display: none;
  }
}
.checkout-index-index .cs-logo__image--mobile {
  display: none;
}
.cs-logo__text {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.messages {
  max-width: 180rem;
  margin: 0 auto;
}

.cs-messages__message,
.message {
  margin: 1rem 0;
  padding: 1.2rem 1rem 1rem;
  border-radius: 0px;
  background-repeat: no-repeat;
  background-position: 1.2rem center;
  background-size: 2rem 2rem;
  padding-left: 4.3rem;
}

.cs-messages__message--success,
.message.success {
  background-color: #d5efd7;
  background-image: url("../images/icons/messages/icon-success.svg");
  border: none;
}

.cs-messages__message--notice,
.message.warning {
  background-color: #fdf4ca;
  background-image: url("../images/icons/messages/icon-warning.svg");
  border: none;
}

.cs-messages__message--info,
.message.info,
.message.notice {
  background-color: #fdf4ca;
  background-image: url("../images/icons/messages/icon-info.svg");
  border: none;
}

.cs-messages__message--error,
.message.error {
  background-color: #f8d0ce;
  background-image: url("../images/icons/messages/icon-error.svg");
  border: none;
}

.cs-messages__text,
.message span {
  color: #696969;
  font-size: 1.4rem;
}

.cs-messages--space-top {
  margin-top: 1.5rem;
}
.page.messages .cs-messages {
  position: fixed;
  bottom: 1rem;
  left: 2rem;
  width: 0;
  max-width: min(calc(100vw - 4rem), 50rem);
  z-index: -4;
  opacity: 0;
  overflow: hidden;
}
.cs-messages--active, .cs-messages[data-role=checkout-messages] {
  opacity: 1 !important;
  width: 100% !important;
  z-index: 700 !important;
  overflow: visible !important;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex;
}
.cs-minicart-product__image-container {
  flex-shrink: 0;
  margin-right: 1rem;
}
.cs-minicart-product__image-container .product-image-wrapper {
  z-index: auto;
}
.cs-minicart-product__image {
  max-height: 100%;
  width: auto;
}
.cs-minicart-product__overview {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
}
.cs-minicart-product__details {
  width: 100%;
}
.cs-minicart-product__brand-wrapper {
  text-align: left;
}
.cs-minicart-product__brand {
  font-size: 1.2rem;
  color: #888;
}
.cs-minicart-product__name-wrapper {
  flex-basis: 55%;
  padding-bottom: 1.2rem;
  text-align: left;
  font-size: 1.3rem;
  flex-basis: 100% !important;
}
@media (min-width: 30em) {
  .cs-minicart-product__name-wrapper {
    flex-basis: 70%;
  }
}
.cs-minicart-product__name {
  width: 100%;
  padding: 0;
  margin-top: 0;
  font-size: inherit;
  text-decoration: none;
  color: #212121;
  font-weight: 600;
  font-weight: 700;
  font-size: 1.4rem;
}
.cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
  text-decoration: none;
  color: #212121;
}
.cs-minicart-product__item-pricing {
  order: 3;
}
.cs-minicart-product__item-pricing--with-special {
  text-align: left;
}
.cs-minicart-product__item-pricing--with-special .old-price .price {
  font-size: 1.3rem;
  color: #696969;
}
.cs-minicart-product__item-pricing--with-special .cs-minicart-product__price .price {
  color: #000000;
}
.cs-minicart-product__price .price {
  font-size: 1.3rem;
  font-weight: 700;
  color: #212121;
}
.cs-minicart-product__price .price-including-tax,
.cs-minicart-product__price .price-excluding-tax {
  font-size: 1.3rem;
}
.cs-minicart-product__price .price {
  font-weight: 400;
}
.cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
  display: none;
}
.cs-minicart-product__options-title {
  font-size: 1.2rem;
  color: #484848;
  cursor: pointer;
  font-size: 1.3rem;
  color: #212121;
}
.cs-minicart-product__options-title[aria-expanded=true] > .cs-minicart-product__options-title-svg {
  transform: rotate(180deg);
  vertical-align: initial;
}
.cs-minicart-product__options-title-svg {
  width: 1rem;
  height: 1rem;
  margin-left: 0.5rem;
  transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
  vertical-align: middle;
}
.cs-minicart-product__options-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  margin-top: -0.4rem;
  flex-basis: 100%;
  padding-bottom: 1.2rem;
}
.cs-minicart-product__options-group {
  margin: 0;
  width: 100%;
  display: flex;
  align-items: center;
}
.cs-minicart-product__options-group--qty {
  margin-top: 0.5rem;
}
.cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
  margin-top: 1.5rem;
}
.cs-minicart-product__options-content {
  width: 100%;
  padding-top: 0.5rem;
}
.cs-minicart-product__options-label {
  font-size: 1.2rem;
  color: #888;
  font-weight: 400;
  margin-bottom: 0;
  text-align: left;
  padding-right: 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: #212121;
  text-transform: uppercase;
}
.cs-minicart-product__options-label:after {
  content: ":";
}
.cs-minicart-product__options-value {
  font-size: 1.2rem;
  color: #888;
  margin-bottom: 0;
  width: 100%;
}
.cs-minicart-product__options-value__value {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.cs-minicart-product__options-value__value .price {
  color: #212121;
}
.cs-minicart-product__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding-top: 1.2rem;
}
.cs-minicart-product__action-wrapper {
  margin-left: 1rem;
}
.cs-minicart-product__qty,
.cs-minicart-product .cs-qty-increment {
  display: flex;
  flex: 1 0 9rem;
  flex-wrap: nowrap;
}
.cs-minicart-product__qty-label {
  display: none;
}
.cs-minicart-product__qty-input {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
  padding: 0;
  text-align: center;
  box-sizing: border-box;
  margin-bottom: 0;
  height: 3rem;
  width: 4rem;
  max-width: 4rem;
  font-size: 1.2rem;
}
.cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.cs-minicart-product__qty-input::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.cs-minicart-product__qty-input::placeholder {
  opacity: 1;
  color: #888;
}
.cs-minicart-product__qty-input[disabled] {
  opacity: 0.65;
}
.cs-minicart-product__qty-button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  padding: 0;
  width: 3rem;
  height: 3rem;
  margin-left: 0.5rem;
}
.cs-minicart-product__qty-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-minicart-product__qty-button *, .cs-minicart-product__qty-button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-minicart-product__qty-button:hover:not([disabled]) *, .cs-minicart-product__qty-button:focus:not([disabled]) *, .cs-minicart-product__qty-button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-minicart-product__qty-button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-minicart-product__qty-button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-minicart-product__qty-button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: relative;
  top: 0.1em;
}
.cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
.cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
.cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
  fill: #666;
}
.cs-minicart-product__action-icon {
  width: 1.6rem;
  height: 1.6rem;
  width: 2rem;
  height: 2rem;
}
.cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
  fill: #000000;
}
.cs-minicart-product__action-label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
  fill: #212121;
}
.cs-minicart-product__options-title-svg * {
  fill: #212121;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* prettier-ignore */
.cs-minicart {
  display: flex;
  flex-flow: column;
  height: 100%;
  justify-content: space-between;
}
.cs-minicart__wrapper {
  display: flex;
  flex: 1 1;
  flex-direction: column;
  min-height: 0;
}
.cs-minicart__content-wrapper {
  max-height: calc(100% - 5.1rem);
  overflow-y: auto;
  overflow-x: hidden;
}
.cs-minicart__close {
  display: inline-block;
  background: none;
  box-sizing: content-box;
  border: 0;
  box-shadow: none;
  line-height: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-shadow: none;
  font-weight: 400;
  position: absolute;
  right: -1.5rem;
  width: 5rem;
  height: 5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  right: 0.5rem;
}
.cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
  background: transparent;
  border: none;
  color: inherit;
}
.cs-minicart__close-icon {
  position: relative;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
  display: inline-block;
}
.cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
  content: "";
  position: absolute;
  top: 50%;
  width: 2rem;
  height: 0.2rem;
  left: auto;
  background-color: #484848;
  transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
  background-color: #696969;
}
.cs-minicart__close-icon[aria-expanded=true]:before, .cs-minicart__close-icon[aria-expanded=true]:after {
  background-color: #888;
}
.cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
  right: 1.5rem;
  transform: translate3d(0, -50%, 0) !important;
}
.cs-minicart__close-icon:after {
  transform: translate3d(0, -50%, 0) rotate(90deg) !important;
}
.cs-minicart__close-icon[aria-expanded=true]:before {
  transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
  opacity: 0;
}
.cs-minicart__close-icon[aria-expanded=true]:after {
  transform: translate3d(0, -50%, 0) rotate(0) !important;
}
.cs-minicart__close-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.cs-minicart__title-wrapper {
  position: relative;
  height: 5.1rem;
  padding: 2rem 0;
  display: flex;
  color: #212121;
  font-weight: 700;
  font-size: 1.8rem;
  margin: 0;
  padding: 1rem 2rem;
  font-size: 2.1rem;
  text-transform: uppercase;
  border-bottom: 1px solid #dcdcdc;
}
.cs-minicart__items-total {
  margin-left: 0.5rem;
  color: #696969;
  font-weight: 400;
}
.cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
  content: "(";
}
.cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
  content: ")";
}
.cs-minicart__items-total--empty .count {
  display: none;
}
.cs-minicart__edit-link {
  font-weight: 700;
}
.cs-minicart__edit-link .cs-link__icon {
  padding: 0 0 0 1rem;
}
.cs-minicart__content {
  height: auto !important;
  background-color: #fff;
  position: relative;
}
.cs-minicart__content .load.indicator:before {
  height: unset;
}
.cs-minicart__list {
  padding: 0;
  list-style: none;
  margin-bottom: 0;
}
.cs-minicart__list--scroll {
  height: auto !important;
  max-height: none;
  overflow-y: hidden;
}
.cs-minicart__list-item {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 0;
  padding: 1.5rem 2rem;
}
.cs-minicart__list-item:last-child {
  border-bottom: none;
}
.cs-minicart__actions-wrapper {
  padding: 2rem 0;
  position: relative;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27);
  min-height: 16.4rem;
  position: static;
  z-index: 1;
}
.cs-minicart__actions-wrapper:has(.cs-minicart__empty) {
  box-shadow: none;
}
.cs-minicart__actions {
  margin-top: 1rem;
}
.cs-minicart__actions:first-child {
  margin-top: 0;
}
.cs-minicart__empty {
  padding: 2rem 0;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center;
  position: absolute;
  width: 100%;
  top: 5.1rem;
  left: 0;
}
.cs-minicart__subtotal {
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.2rem;
}
.cs-minicart__subtotal-price .price {
  font-weight: 700;
  font-size: 1.5rem !important;
  font-size: 2.1rem !important;
}
.cs-minicart__button-checkout {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 100%;
}
.cs-minicart__button-checkout:hover, .cs-minicart__button-checkout:focus, .cs-minicart__button-checkout:active {
  background-color: #000000 !important;
}
.cs-minicart__button-checkout:before, .cs-minicart__button-checkout:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-minicart__button-checkout:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-minicart__button-checkout:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-minicart__button-checkout:hover:after {
  width: calc(100% + 2px);
}
.cs-minicart__button-checkout::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-minicart__button-checkout *, .cs-minicart__button-checkout:visited * {
  color: #fff;
  fill: #fff;
}
.cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-minicart__button-checkout:hover:not([disabled]) *, .cs-minicart__button-checkout:focus:not([disabled]) *, .cs-minicart__button-checkout:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-minicart__button-checkout[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-minicart__button-checkout-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
  /* stylelint-disable-next-line */
}
.cs-minicart__button-checkout-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
  /* stylelint-disable-next-line */
}
.cs-minicart__button-viewcart {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 100%;
}
.cs-minicart__button-viewcart::before, .cs-minicart__button-viewcart::after {
  content: none;
}
.cs-minicart__button-viewcart::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.cs-minicart__button-viewcart *, .cs-minicart__button-viewcart:visited * {
  color: #000000;
  fill: #000000;
}
.cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.cs-minicart__button-viewcart:hover:not([disabled]) *, .cs-minicart__button-viewcart:focus:not([disabled]) *, .cs-minicart__button-viewcart:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-minicart__button-viewcart[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-minicart__button-viewcart-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
  /* stylelint-disable-next-line */
}
.cs-minicart__button-viewcart-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
  /* stylelint-disable-next-line */
}
.cs-minicart__button-carousel {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-minicart__button-carousel-wrapper {
  display: flex;
  justify-content: center;
  padding-top: 3rem;
  margin: 3rem 0;
  border-top: 1px solid #dcdcdc;
}
.cs-minicart__button-carousel::before, .cs-minicart__button-carousel::after {
  content: none;
}
.cs-minicart__button-carousel::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.cs-minicart__button-carousel *, .cs-minicart__button-carousel:visited * {
  color: #000000;
  fill: #000000;
}
.cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.cs-minicart__button-carousel:hover:not([disabled]) *, .cs-minicart__button-carousel:focus:not([disabled]) *, .cs-minicart__button-carousel:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-minicart__button-carousel[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-minicart__button-carousel-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
  /* stylelint-disable-next-line */
}
.cs-minicart__button-carousel-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
  /* stylelint-disable-next-line */
}
.cs-minicart__messages {
  padding: 0 2rem;
}
.cs-minicart-offcanvas__wrapper {
  padding: 0;
  height: 100%;
}

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10;
}
@media screen and (max-width: 79.99em) and (max-height: 900px) {
  .cs-minicart__carousel {
    max-width: 60rem;
    margin: 0 auto;
  }
}
.cs-minicart__carousel-container {
  opacity: 0;
  transition: opacity 0.3s ease-in;
  background: #fff;
}
.cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
  opacity: 1;
}
.cs-minicart__carousel-wrapper {
  display: none;
  visibility: hidden;
  pointer-events: none;
  top: 50%;
  right: calc(40rem + 2rem);
  transform: translateY(-50%);
  width: calc(100vw - (40rem + (2 * 2rem)));
  max-width: 120rem;
  padding: 0;
  margin: 0;
  background: transparent;
}
.cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
  visibility: visible;
  pointer-events: auto;
}
.drawer--visible .cs-minicart__carousel-wrapper {
  position: absolute;
}

@media (min-width: 64em) {
  .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
    display: block;
  }
}
@media (min-width: 80em) {
  .cs-minicart__carousel-wrapper {
    right: calc(40rem + (2 * 2rem));
    width: calc(100vw - (40rem + (4 * 2rem)));
  }
}
.cs-minicart__carousel-wrapper .cs-headline {
  margin: 0 0 2rem;
  padding: 2rem 0 0;
}
.cs-minicart__carousel-wrapper .cs-headline__title {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}
.cs-minicart__carousel-spinner {
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11rem;
  height: 11rem;
  padding: 2rem 0;
  transform: translate3d(-50%, -50%, 0);
  transition: opacity 0.3s ease-in;
}
.cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
  opacity: 1;
  z-index: 10;
}
.cs-minicart__carousel .cs-products-carousel {
  --gap: 0.8rem;
  --base-size: calc(100% - 0.8rem);
  --size: var(--base-size);
  /**
   * class-based columns config relates to classnames, like '--items-in-row-4'
   * which are added to elements, depending on the CC Components configuration.
   */
  --size: calc(
      var(--base-size) /
          2 -
          1 *
          var(--gap) /
          2
  );
  /*  container padding fix  */
  margin: 0;
  background: #fff;
}
@media (min-width: 114.375em) {
  .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
    --base-size: calc(180rem - 0.8rem);
  }
  .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen:not(.cs-minicart__carousel .cs-products-carousel--full-width-slider) {
    --base-size: 100%;
    max-width: 100%;
  }
  .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen:not(.cs-minicart__carousel .cs-products-carousel--full-width-slider) .cs-minicart__carousel .cs-products-carousel__slides {
    scroll-snap-type: x proximity;
    padding-left: calc((100% - 180rem) / 2);
    padding-right: calc((100% - 180rem) / 2);
    scroll-padding-left: calc((100% - 180rem) / 2);
    scroll-padding-right: calc((100% - 180rem) / 2);
    scroll-margin-left: calc((100vw - 180rem) / 2);
    scroll-margin-right: calc((100vw - 180rem) / 2);
  }
}
@media (hover: hover) and (pointer: fine) and (min-width: 114.375em) {
  .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
    --base-size: 180rem;
  }
}
@media (min-width: 48em) {
  .cs-minicart__carousel .cs-products-carousel {
    --gap: 0.8rem;
  }
}
@media (min-width: 23.125em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    );
  }
}
@media (min-width: 30em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    );
  }
}
@media (min-width: 48em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    );
  }
}
@media (min-width: 64em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 3 - ((
                        2 * var(--gap)
                    ) / 3)
    );
  }
}
@media (min-width: 80em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 3 - ((
                        2 * var(--gap)
                    ) / 3)
    );
  }
}
@media (min-width: 90em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 4 - ((
                        3 * var(--gap)
                    ) / 4)
    );
  }
}
@media (min-width: 120em) {
  .cs-minicart__carousel .cs-products-carousel {
    --size: calc(
        var(--base-size) / 4 - ((
                        3 * var(--gap)
                    ) / 4)
    );
  }
}
@media (max-width: 114.3125em) {
  .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width .cs-minicart__carousel .cs-products-carousel__slides {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
    scroll-padding-right: 1.5rem;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
    scroll-behavior: smooth;
  }
}
.cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides-wrapper {
  position: relative;
}
.cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex: 0 0 100%;
  gap: 0;
  flex-wrap: nowrap;
  padding: var(--gap) 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
@supports (scroll-behavior: smooth) {
  .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
    scroll-snap-type: x mandatory;
  }
}
@media (min-width: 48em) {
  .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
    overflow: -moz-scrollbars-none;
    scrollbar-width: none;
  }
  .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
  }
  .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar-thumb {
    background: transparent;
    width: 0;
    height: 0;
  }
}
.cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-block;
  flex: 0 0 var(--size);
  margin-right: var(--gap);
  scroll-snap-align: start;
  min-width: 0;
}
.cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide:last-of-type {
  margin-right: 0;
}
.cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__image {
  display: block;
}

.minicart-wrapper .ui-dialog {
  display: block !important;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem;
}
.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
  border-radius: 0;
  border: none;
}
.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.4rem;
}
.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0;
}
.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem;
  z-index: 1;
}
.modal-slide .action-close span,
.modal-popup .action-close span,
.modal-custom .action-close span {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.modal-slide .action-close:before,
.modal-popup .action-close:before,
.modal-custom .action-close:before {
  content: none;
}
.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between;
}
@media (max-width: 29.99em) {
  .modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
    flex-wrap: wrap;
  }
}
.modal-slide .modal-footer .action-primary,
.modal-slide .modal-footer .primary,
.modal-popup .modal-footer .action-primary,
.modal-popup .modal-footer .primary,
.modal-custom .modal-footer .action-primary,
.modal-custom .modal-footer .primary {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  min-width: 12rem;
}
.modal-slide .modal-footer .action-primary::-moz-focus-inner,
.modal-slide .modal-footer .primary::-moz-focus-inner,
.modal-popup .modal-footer .action-primary::-moz-focus-inner,
.modal-popup .modal-footer .primary::-moz-focus-inner,
.modal-custom .modal-footer .action-primary::-moz-focus-inner,
.modal-custom .modal-footer .primary::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
.modal-slide .modal-footer .primary,
.modal-slide .modal-footer .primary:visited,
.modal-popup .modal-footer .action-primary,
.modal-popup .modal-footer .action-primary:visited,
.modal-popup .modal-footer .primary,
.modal-popup .modal-footer .primary:visited,
.modal-custom .modal-footer .action-primary,
.modal-custom .modal-footer .action-primary:visited,
.modal-custom .modal-footer .primary,
.modal-custom .modal-footer .primary:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.modal-slide .modal-footer .action-primary *, .modal-slide .modal-footer .action-primary:visited *,
.modal-slide .modal-footer .primary *,
.modal-slide .modal-footer .primary:visited *,
.modal-popup .modal-footer .action-primary *,
.modal-popup .modal-footer .action-primary:visited *,
.modal-popup .modal-footer .primary *,
.modal-popup .modal-footer .primary:visited *,
.modal-custom .modal-footer .action-primary *,
.modal-custom .modal-footer .action-primary:visited *,
.modal-custom .modal-footer .primary *,
.modal-custom .modal-footer .primary:visited * {
  color: #fff;
  fill: #fff;
}
.modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]),
.modal-slide .modal-footer .primary:hover:not([disabled]),
.modal-slide .modal-footer .primary:focus:not([disabled]),
.modal-slide .modal-footer .primary:active:not([disabled]),
.modal-popup .modal-footer .action-primary:hover:not([disabled]),
.modal-popup .modal-footer .action-primary:focus:not([disabled]),
.modal-popup .modal-footer .action-primary:active:not([disabled]),
.modal-popup .modal-footer .primary:hover:not([disabled]),
.modal-popup .modal-footer .primary:focus:not([disabled]),
.modal-popup .modal-footer .primary:active:not([disabled]),
.modal-custom .modal-footer .action-primary:hover:not([disabled]),
.modal-custom .modal-footer .action-primary:focus:not([disabled]),
.modal-custom .modal-footer .action-primary:active:not([disabled]),
.modal-custom .modal-footer .primary:hover:not([disabled]),
.modal-custom .modal-footer .primary:focus:not([disabled]),
.modal-custom .modal-footer .primary:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.modal-slide .modal-footer .action-primary:hover:not([disabled]) *, .modal-slide .modal-footer .action-primary:focus:not([disabled]) *, .modal-slide .modal-footer .action-primary:active:not([disabled]) *,
.modal-slide .modal-footer .primary:hover:not([disabled]) *,
.modal-slide .modal-footer .primary:focus:not([disabled]) *,
.modal-slide .modal-footer .primary:active:not([disabled]) *,
.modal-popup .modal-footer .action-primary:hover:not([disabled]) *,
.modal-popup .modal-footer .action-primary:focus:not([disabled]) *,
.modal-popup .modal-footer .action-primary:active:not([disabled]) *,
.modal-popup .modal-footer .primary:hover:not([disabled]) *,
.modal-popup .modal-footer .primary:focus:not([disabled]) *,
.modal-popup .modal-footer .primary:active:not([disabled]) *,
.modal-custom .modal-footer .action-primary:hover:not([disabled]) *,
.modal-custom .modal-footer .action-primary:focus:not([disabled]) *,
.modal-custom .modal-footer .action-primary:active:not([disabled]) *,
.modal-custom .modal-footer .primary:hover:not([disabled]) *,
.modal-custom .modal-footer .primary:focus:not([disabled]) *,
.modal-custom .modal-footer .primary:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.modal-slide .modal-footer .action-primary[disabled],
.modal-slide .modal-footer .primary[disabled],
.modal-popup .modal-footer .action-primary[disabled],
.modal-popup .modal-footer .primary[disabled],
.modal-custom .modal-footer .action-primary[disabled],
.modal-custom .modal-footer .primary[disabled] {
  opacity: 0.65;
  cursor: auto;
}
@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
.modal-slide .modal-footer .primary,
.modal-popup .modal-footer .action-primary,
.modal-popup .modal-footer .primary,
.modal-custom .modal-footer .action-primary,
.modal-custom .modal-footer .primary {
    width: 100%;
  }
}
.modal-slide .modal-footer .action-primary span,
.modal-slide .modal-footer .primary span,
.modal-popup .modal-footer .action-primary span,
.modal-popup .modal-footer .primary span,
.modal-custom .modal-footer .action-primary span,
.modal-custom .modal-footer .primary span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.modal-slide .modal-footer .action-secondary,
.modal-slide .modal-footer .secondary,
.modal-popup .modal-footer .action-secondary,
.modal-popup .modal-footer .secondary,
.modal-custom .modal-footer .action-secondary,
.modal-custom .modal-footer .secondary {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  min-width: 12rem;
}
.modal-slide .modal-footer .action-secondary::-moz-focus-inner,
.modal-slide .modal-footer .secondary::-moz-focus-inner,
.modal-popup .modal-footer .action-secondary::-moz-focus-inner,
.modal-popup .modal-footer .secondary::-moz-focus-inner,
.modal-custom .modal-footer .action-secondary::-moz-focus-inner,
.modal-custom .modal-footer .secondary::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
.modal-slide .modal-footer .secondary,
.modal-slide .modal-footer .secondary:visited,
.modal-popup .modal-footer .action-secondary,
.modal-popup .modal-footer .action-secondary:visited,
.modal-popup .modal-footer .secondary,
.modal-popup .modal-footer .secondary:visited,
.modal-custom .modal-footer .action-secondary,
.modal-custom .modal-footer .action-secondary:visited,
.modal-custom .modal-footer .secondary,
.modal-custom .modal-footer .secondary:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.modal-slide .modal-footer .action-secondary *, .modal-slide .modal-footer .action-secondary:visited *,
.modal-slide .modal-footer .secondary *,
.modal-slide .modal-footer .secondary:visited *,
.modal-popup .modal-footer .action-secondary *,
.modal-popup .modal-footer .action-secondary:visited *,
.modal-popup .modal-footer .secondary *,
.modal-popup .modal-footer .secondary:visited *,
.modal-custom .modal-footer .action-secondary *,
.modal-custom .modal-footer .action-secondary:visited *,
.modal-custom .modal-footer .secondary *,
.modal-custom .modal-footer .secondary:visited * {
  color: #000000;
  fill: #000000;
}
.modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]),
.modal-slide .modal-footer .secondary:hover:not([disabled]),
.modal-slide .modal-footer .secondary:focus:not([disabled]),
.modal-slide .modal-footer .secondary:active:not([disabled]),
.modal-popup .modal-footer .action-secondary:hover:not([disabled]),
.modal-popup .modal-footer .action-secondary:focus:not([disabled]),
.modal-popup .modal-footer .action-secondary:active:not([disabled]),
.modal-popup .modal-footer .secondary:hover:not([disabled]),
.modal-popup .modal-footer .secondary:focus:not([disabled]),
.modal-popup .modal-footer .secondary:active:not([disabled]),
.modal-custom .modal-footer .action-secondary:hover:not([disabled]),
.modal-custom .modal-footer .action-secondary:focus:not([disabled]),
.modal-custom .modal-footer .action-secondary:active:not([disabled]),
.modal-custom .modal-footer .secondary:hover:not([disabled]),
.modal-custom .modal-footer .secondary:focus:not([disabled]),
.modal-custom .modal-footer .secondary:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, .modal-slide .modal-footer .action-secondary:active:not([disabled]) *,
.modal-slide .modal-footer .secondary:hover:not([disabled]) *,
.modal-slide .modal-footer .secondary:focus:not([disabled]) *,
.modal-slide .modal-footer .secondary:active:not([disabled]) *,
.modal-popup .modal-footer .action-secondary:hover:not([disabled]) *,
.modal-popup .modal-footer .action-secondary:focus:not([disabled]) *,
.modal-popup .modal-footer .action-secondary:active:not([disabled]) *,
.modal-popup .modal-footer .secondary:hover:not([disabled]) *,
.modal-popup .modal-footer .secondary:focus:not([disabled]) *,
.modal-popup .modal-footer .secondary:active:not([disabled]) *,
.modal-custom .modal-footer .action-secondary:hover:not([disabled]) *,
.modal-custom .modal-footer .action-secondary:focus:not([disabled]) *,
.modal-custom .modal-footer .action-secondary:active:not([disabled]) *,
.modal-custom .modal-footer .secondary:hover:not([disabled]) *,
.modal-custom .modal-footer .secondary:focus:not([disabled]) *,
.modal-custom .modal-footer .secondary:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.modal-slide .modal-footer .action-secondary[disabled],
.modal-slide .modal-footer .secondary[disabled],
.modal-popup .modal-footer .action-secondary[disabled],
.modal-popup .modal-footer .secondary[disabled],
.modal-custom .modal-footer .action-secondary[disabled],
.modal-custom .modal-footer .secondary[disabled] {
  opacity: 0.65;
  cursor: auto;
}
@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
.modal-slide .modal-footer .secondary,
.modal-popup .modal-footer .action-secondary,
.modal-popup .modal-footer .secondary,
.modal-custom .modal-footer .action-secondary,
.modal-custom .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important;
  }
}
.modal-slide .modal-footer .action-secondary span,
.modal-slide .modal-footer .secondary span,
.modal-popup .modal-footer .action-secondary span,
.modal-popup .modal-footer .secondary span,
.modal-custom .modal-footer .action-secondary span,
.modal-custom .modal-footer .secondary span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary,
body.checkout-index-index .modal-slide .modal-footer .secondary,
body.checkout-index-index .modal-popup .modal-footer .action-secondary,
body.checkout-index-index .modal-popup .modal-footer .secondary,
body.checkout-index-index .modal-custom .modal-footer .action-secondary,
body.checkout-index-index .modal-custom .modal-footer .secondary {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  min-width: 12rem;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
body.checkout-index-index .modal-slide .modal-footer .secondary::-moz-focus-inner,
body.checkout-index-index .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
body.checkout-index-index .modal-popup .modal-footer .secondary::-moz-focus-inner,
body.checkout-index-index .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
body.checkout-index-index .modal-custom .modal-footer .secondary::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited,
body.checkout-index-index .modal-slide .modal-footer .secondary,
body.checkout-index-index .modal-slide .modal-footer .secondary:visited,
body.checkout-index-index .modal-popup .modal-footer .action-secondary,
body.checkout-index-index .modal-popup .modal-footer .action-secondary:visited,
body.checkout-index-index .modal-popup .modal-footer .secondary,
body.checkout-index-index .modal-popup .modal-footer .secondary:visited,
body.checkout-index-index .modal-custom .modal-footer .action-secondary,
body.checkout-index-index .modal-custom .modal-footer .action-secondary:visited,
body.checkout-index-index .modal-custom .modal-footer .secondary,
body.checkout-index-index .modal-custom .modal-footer .secondary:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited *,
body.checkout-index-index .modal-slide .modal-footer .secondary *,
body.checkout-index-index .modal-slide .modal-footer .secondary:visited *,
body.checkout-index-index .modal-popup .modal-footer .action-secondary *,
body.checkout-index-index .modal-popup .modal-footer .action-secondary:visited *,
body.checkout-index-index .modal-popup .modal-footer .secondary *,
body.checkout-index-index .modal-popup .modal-footer .secondary:visited *,
body.checkout-index-index .modal-custom .modal-footer .action-secondary *,
body.checkout-index-index .modal-custom .modal-footer .action-secondary:visited *,
body.checkout-index-index .modal-custom .modal-footer .secondary *,
body.checkout-index-index .modal-custom .modal-footer .secondary:visited * {
  color: #000000;
  fill: #000000;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]),
body.checkout-index-index .modal-slide .modal-footer .secondary:hover:not([disabled]),
body.checkout-index-index .modal-slide .modal-footer .secondary:focus:not([disabled]),
body.checkout-index-index .modal-slide .modal-footer .secondary:active:not([disabled]),
body.checkout-index-index .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
body.checkout-index-index .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
body.checkout-index-index .modal-popup .modal-footer .action-secondary:active:not([disabled]),
body.checkout-index-index .modal-popup .modal-footer .secondary:hover:not([disabled]),
body.checkout-index-index .modal-popup .modal-footer .secondary:focus:not([disabled]),
body.checkout-index-index .modal-popup .modal-footer .secondary:active:not([disabled]),
body.checkout-index-index .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
body.checkout-index-index .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
body.checkout-index-index .modal-custom .modal-footer .action-secondary:active:not([disabled]),
body.checkout-index-index .modal-custom .modal-footer .secondary:hover:not([disabled]),
body.checkout-index-index .modal-custom .modal-footer .secondary:focus:not([disabled]),
body.checkout-index-index .modal-custom .modal-footer .secondary:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]) *,
body.checkout-index-index .modal-slide .modal-footer .secondary:hover:not([disabled]) *,
body.checkout-index-index .modal-slide .modal-footer .secondary:focus:not([disabled]) *,
body.checkout-index-index .modal-slide .modal-footer .secondary:active:not([disabled]) *,
body.checkout-index-index .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *,
body.checkout-index-index .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *,
body.checkout-index-index .modal-popup .modal-footer .action-secondary:active:not([disabled]) *,
body.checkout-index-index .modal-popup .modal-footer .secondary:hover:not([disabled]) *,
body.checkout-index-index .modal-popup .modal-footer .secondary:focus:not([disabled]) *,
body.checkout-index-index .modal-popup .modal-footer .secondary:active:not([disabled]) *,
body.checkout-index-index .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *,
body.checkout-index-index .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *,
body.checkout-index-index .modal-custom .modal-footer .action-secondary:active:not([disabled]) *,
body.checkout-index-index .modal-custom .modal-footer .secondary:hover:not([disabled]) *,
body.checkout-index-index .modal-custom .modal-footer .secondary:focus:not([disabled]) *,
body.checkout-index-index .modal-custom .modal-footer .secondary:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled],
body.checkout-index-index .modal-slide .modal-footer .secondary[disabled],
body.checkout-index-index .modal-popup .modal-footer .action-secondary[disabled],
body.checkout-index-index .modal-popup .modal-footer .secondary[disabled],
body.checkout-index-index .modal-custom .modal-footer .action-secondary[disabled],
body.checkout-index-index .modal-custom .modal-footer .secondary[disabled] {
  opacity: 0.65;
  cursor: auto;
}
body.checkout-index-index .modal-slide .modal-footer .action-secondary span,
body.checkout-index-index .modal-slide .modal-footer .secondary span,
body.checkout-index-index .modal-popup .modal-footer .action-secondary span,
body.checkout-index-index .modal-popup .modal-footer .secondary span,
body.checkout-index-index .modal-custom .modal-footer .action-secondary span,
body.checkout-index-index .modal-custom .modal-footer .secondary span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.modal-slide .modal-footer button:only-child,
.modal-popup .modal-footer button:only-child,
.modal-custom .modal-footer button:only-child {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  min-width: 12rem;
}
.modal-slide .modal-footer button:only-child::-moz-focus-inner,
.modal-popup .modal-footer button:only-child::-moz-focus-inner,
.modal-custom .modal-footer button:only-child::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
.modal-popup .modal-footer button:only-child,
.modal-popup .modal-footer button:only-child:visited,
.modal-custom .modal-footer button:only-child,
.modal-custom .modal-footer button:only-child:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.modal-slide .modal-footer button:only-child *, .modal-slide .modal-footer button:only-child:visited *,
.modal-popup .modal-footer button:only-child *,
.modal-popup .modal-footer button:only-child:visited *,
.modal-custom .modal-footer button:only-child *,
.modal-custom .modal-footer button:only-child:visited * {
  color: #fff;
  fill: #fff;
}
.modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]),
.modal-popup .modal-footer button:only-child:hover:not([disabled]),
.modal-popup .modal-footer button:only-child:focus:not([disabled]),
.modal-popup .modal-footer button:only-child:active:not([disabled]),
.modal-custom .modal-footer button:only-child:hover:not([disabled]),
.modal-custom .modal-footer button:only-child:focus:not([disabled]),
.modal-custom .modal-footer button:only-child:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.modal-slide .modal-footer button:only-child:hover:not([disabled]) *, .modal-slide .modal-footer button:only-child:focus:not([disabled]) *, .modal-slide .modal-footer button:only-child:active:not([disabled]) *,
.modal-popup .modal-footer button:only-child:hover:not([disabled]) *,
.modal-popup .modal-footer button:only-child:focus:not([disabled]) *,
.modal-popup .modal-footer button:only-child:active:not([disabled]) *,
.modal-custom .modal-footer button:only-child:hover:not([disabled]) *,
.modal-custom .modal-footer button:only-child:focus:not([disabled]) *,
.modal-custom .modal-footer button:only-child:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.modal-slide .modal-footer button:only-child[disabled],
.modal-popup .modal-footer button:only-child[disabled],
.modal-custom .modal-footer button:only-child[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.modal-slide .modal-footer button:only-child span,
.modal-popup .modal-footer button:only-child span,
.modal-custom .modal-footer button:only-child span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0;
}

@media (max-width: 48em) {
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #fff;
  }
}

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap;
  }
}
@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
.modal-slide .modal-footer .primary {
    width: 100%;
  }
}
@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
.modal-slide .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important;
  }
}

.modal-popup {
  pointer-events: none;
  touch-action: none;
}
.modal-popup.agreements-modal .modal-title {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.modal-popup.minicart-remove-item .modal-title {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

.modal-custom.cart-items .modal-title {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

.page-layout-checkout .modal-popup:not(._inner-scroll) {
  pointer-events: auto;
}
@media (min-width: 48.01em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%);
  }
}

.modals-overlay {
  background-color: rgba(0, 0, 0, 0.7);
}

body._has-modal.modal-no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh;
  overflow: initial;
}

/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-navigation {
  box-sizing: border-box;
  font-size: 1rem;
}
.cs-navigation__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.cs-navigation__list--main {
  position: relative;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  padding: 0 2rem;
}
.cs-navigation__list--all-categories {
  width: 100%;
  -moz-columns: auto 1;
       columns: auto 1;
  -moz-column-gap: 0;
       column-gap: 0;
  flex: 1 0 auto;
}
.cs-navigation__list--level_1 {
  width: 100%;
  -moz-columns: auto 1;
       columns: auto 1;
  -moz-column-gap: 0;
       column-gap: 0;
  flex: 1 0 auto;
}
.cs-navigation__list--level_2 {
  flex-wrap: wrap;
}
.cs-navigation__list--hidden {
  display: none;
}
.cs-navigation__list--hidden + .cs-navigation__extras {
  display: none;
}
.cs-navigation__list .cs-navigation__item--no-children:nth-child(2) {
  padding-top: 1rem;
}
.cs-navigation__list .cs-navigation__item--no-children:last-of-type {
  padding-bottom: 1rem;
}
.cs-navigation__item {
  font-size: 0.9em;
  margin: 0;
  width: 100%;
}
.cs-navigation__item--active:not([data-category-identifier=all-categories]) > .cs-navigation__link, .cs-navigation__item.active:not([data-category-identifier=all-categories]) > .cs-navigation__link, .cs-navigation__item:hover:not([data-category-identifier=all-categories]) > .cs-navigation__link {
  color: #212121;
}
.cs-navigation__item--main {
  width: auto;
  font-size: 1.4rem;
}
.cs-navigation__item--main:first-of-type > .cs-navigation__link:not(.cs-navigation__link--with-icon) {
  padding-left: 0;
}
.cs-navigation__item--main:last-of-type > .cs-navigation__link {
  padding-right: 0;
}
.cs-navigation__item--all-categories {
  padding: 1rem;
  page-break-inside: avoid;
  /* Theoretically FF 20+ */
  -moz-column-break-inside: avoid;
       break-inside: avoid-column;
  /* IE 11 */
  display: table;
}
.cs-navigation__item--level_1 {
  padding: 1rem;
  page-break-inside: avoid;
  /* Theoretically FF 20+ */
  -moz-column-break-inside: avoid;
       break-inside: avoid-column;
  /* IE 11 */
  display: table;
}
.cs-navigation__item--hidden {
  display: none;
}
.cs-navigation__link {
  display: block;
  text-transform: uppercase !important;
  padding: 0.9em 1.05em;
  width: 100%;
}
.cs-navigation__link, .cs-navigation__link:visited {
  color: #484848;
}
.cs-navigation__link:hover {
  text-decoration: none;
  color: #212121;
}
.cs-navigation__link:hover .cs-navigation__link-icon--svg path {
  fill: #000000;
}
.cs-navigation__link--main {
  font-weight: 600;
  display: inline-block;
  position: relative;
}
.cs-navigation__link--main::after {
  content: "";
  position: absolute;
  width: auto;
  transform: scaleX(0);
  height: 1px;
  bottom: 10px;
  left: 0.9em;
  right: 0.9em;
  background-color: #000000;
  transform-origin: bottom right;
  transition: transform 0.25s ease-out;
}
.cs-navigation__link--main::after:last-child {
  right: 0;
}
.cs-navigation__link--main:hover::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}
.cs-navigation__link--all-categories {
  font-weight: 400;
  margin: 0;
  border-bottom: 1px solid #dcdcdc;
  padding-bottom: 1.6em;
}
.cs-navigation__link--level_1 {
  font-weight: 400;
  margin: 0;
  border-bottom: 1px solid #dcdcdc;
  padding-bottom: 1.6em;
}
.cs-navigation__link--level_2 {
  text-transform: none;
  font-size: 1.4em;
}
.cs-navigation__link--with-icon {
  position: relative;
  padding-left: 3rem;
}
.cs-navigation__link-icon-wrapper {
  position: absolute;
  width: 2rem;
  height: 2rem;
  top: 0;
  left: 0;
  margin-top: 0.8em;
}
.cs-navigation__link-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  height: 2rem;
  width: 2rem;
}
.cs-navigation__link--category .cs-navigation__link-icon {
  margin-top: -0.5rem;
}
.cs-navigation__link-icon--svg path {
  fill: #484848;
}
.cs-navigation__link-products-qty:before {
  content: "(";
}
.cs-navigation__link-products-qty:after {
  content: ")";
}
.cs-navigation .cs-navigation__item:first-child .cs-navigation__link--main::after {
  left: 0;
}
.cs-navigation .cs-navigation__item:last-child .cs-navigation__link--main::after {
  right: 0;
}
.cs-navigation .cs-navigation__item--no-children {
  padding: 0;
}
.cs-navigation .cs-navigation__item--no-children > .cs-navigation__link--level_1 {
  font-size: 1.12em;
  font-weight: 400;
  padding: 0.9em 1.5em;
  border: none;
  color: #484848;
}
.cs-navigation__flyout {
  position: absolute;
  display: none;
  background: #fff;
  left: 0;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1001;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
  margin-top: -1px;
}
.cs-navigation__flyout--visible {
  display: flex;
}
.cs-navigation__flyout svg {
  pointer-events: none;
}
@supports (-ms-ime-align: auto) {
  .cs-navigation__flyout li {
    list-style: none;
    list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);
    list-style-type: none;
  }
}
.cs-navigation__extras {
  margin: 0;
}
.cs-navigation__teaser {
  max-height: 100%;
  padding: 1em 0;
  margin-bottom: 0 !important;
}
.cs-navigation__teaser--hidden {
  display: none;
}
.cs-navigation__products {
  padding: 0.5em 1em;
  min-width: 24rem;
}
.cs-navigation__products-header {
  display: block;
  color: #484848;
  text-transform: uppercase;
  width: 100%;
  font-weight: 400;
  margin: 0;
  border-bottom: 1px solid #dcdcdc;
  padding: 1.1em 1.05em 1.55em;
  font-size: 0.9em;
}
.cs-navigation__products-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cs-navigation__product {
  position: relative;
}
.cs-navigation__product:before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 166.6666666667%;
}
.cs-navigation__product .cs-product-tile {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.cs-navigation__overlay {
  display: none;
  position: absolute;
  z-index: 1000;
  background-color: #000;
  opacity: 0;
  left: 0;
  width: 100%;
  height: 0;
  transform: translate3d(0, 3rem, 0);
  transition: opacity 0.15s linear, transform 0.2s cubic-bezier(0, 0.97, 0.05, 0.99);
}
.cs-navigation__overlay--visible {
  opacity: 0.8;
  transform: translate3d(0, 0, 0);
}
.page-print .cs-navigation {
  display: none;
}
@supports (display: grid) and (grid-auto-flow: row) {
  .cs-navigation__product {
    position: relative;
  }
  .cs-navigation__product:before {
    content: none;
  }
  .cs-navigation__product .cs-product-tile {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
  }
}

.cs-container--navigation {
  display: none;
}
@media (min-width: 64em) {
  .cs-container--navigation {
    display: block;
  }
}

.cs-navigation__item.cs-navigation__item--main.active .cs-navigation__link--main::after {
  transform: scaleX(1);
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-newsletter {
  margin: 0;
  width: 100%;
}
@media (max-width: 47.99em) {
  .cs-newsletter {
    padding: 0 1.5rem;
  }
}
.cs-newsletter__form {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
}
@media (min-width: 48em) {
  .cs-newsletter__form {
    max-width: 34rem;
  }
}
@media (min-width: 64em) {
  .cs-newsletter__form {
    max-width: 100%;
  }
}
.cs-newsletter__form-wrapper {
  display: flex;
  flex-basis: 100%;
}
.cs-newsletter__field {
  flex-basis: 100%;
}
.cs-newsletter__input {
  margin-top: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.cs-newsletter__label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-newsletter__actions {
  display: flex;
  align-items: stretch;
  height: 4rem;
}
.cs-newsletter__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}
.cs-newsletter__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-newsletter__button, .cs-newsletter__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-newsletter__button *, .cs-newsletter__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-newsletter__button:hover:not([disabled]) *, .cs-newsletter__button:focus:not([disabled]) *, .cs-newsletter__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-newsletter__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-newsletter__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: relative;
  top: 0.1em;
  width: 0.8em;
  height: 0.8em;
  margin-right: 0;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #fff;
}
.cs-offcanvas-navigation__list {
  z-index: 1;
  width: 100%;
  min-width: 100%;
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #fff;
  overflow-y: hidden;
  overflow-x: hidden;
  height: 100%;
  -webkit-overflow-scrolling: touch;
  display: none;
}
.cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
  display: block;
}
.cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current {
  overflow-y: auto;
}
.cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
  display: block;
}
.cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
  position: absolute;
  left: 105%;
  height: 100%;
  top: 0;
  transition: transform 0.3s;
}
.cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
  transform: translateX(-105%);
  transform: translate3d(-105%, 0, 0);
}
.cs-offcanvas-navigation__item {
  width: 100%;
  display: flex;
  overflow: hidden;
  margin: 0;
  border-bottom: 1px #dcdcdc solid;
}
.cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
  position: relative;
  padding-left: 2.4rem;
}
.cs-offcanvas-navigation__link {
  min-width: 100%;
  width: 100%;
  display: flex;
  padding: 2.4rem 2rem;
  font-size: 1.4rem;
  align-items: center;
  text-transform: uppercase;
  font-weight: 700;
  position: relative;
}
.cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
  color: #212121;
}
.cs-offcanvas-navigation__link:hover {
  color: #212121;
}
.cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
  padding-right: 5rem;
}
.cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
  color: #000000;
}
.cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
  color: #000000;
}
.cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
  fill: #000000;
}
.cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
  width: 2.3rem;
  height: 2.7rem;
  right: 2.4rem;
}
.cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
  fill: #000000;
}
.cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
  width: 0.7rem;
  height: 0.1rem;
}
.cs-offcanvas-navigation__link--parent {
  padding-right: 5rem;
}
.cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
  right: 2.4rem;
}
.cs-offcanvas-navigation__link--return {
  padding-left: 5rem;
}
.cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
  left: 2.4rem;
}
.cs-offcanvas-navigation__link--next {
  position: relative;
}
.cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
  content: "";
  position: absolute;
  top: 50%;
  width: 0.7rem;
  height: 0.1rem;
  left: auto;
  background-color: #000000;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.cs-offcanvas-navigation__link--next[aria-expanded=true]:before, .cs-offcanvas-navigation__link--next[aria-expanded=true]:after {
  background-color: #888;
}
.cs-offcanvas-navigation__link--next:before {
  transform: rotate(135deg) translate3d(50%, 0, 0);
  right: 2.4rem;
}
.cs-offcanvas-navigation__link--next:after {
  right: 2.4rem;
  transform: rotate(-135deg) translate3d(50%, 0, 0);
}
.cs-offcanvas-navigation__link--next[aria-expanded=true]:before {
  transform: rotate(225deg) translate3d(0, 0, 0);
  right: 0;
}
.cs-offcanvas-navigation__link--next[aria-expanded=true]:after {
  transform: rotate(-45deg) translate3d(0, 0, 0);
  right: 2.4rem;
}
.cs-offcanvas-navigation__link--prev {
  position: relative;
}
.cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
  content: "";
  position: absolute;
  top: 50%;
  width: 0.7rem;
  height: 0.1rem;
  left: auto;
  background-color: #000000;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.cs-offcanvas-navigation__link--prev[aria-expanded=true]:before, .cs-offcanvas-navigation__link--prev[aria-expanded=true]:after {
  background-color: #888;
}
.cs-offcanvas-navigation__link--prev:before {
  transform: rotate(45deg) translate3d(50%, -50%, 0);
  right: 0;
}
.cs-offcanvas-navigation__link--prev:after {
  right: 0;
  transform: rotate(-45deg) translate3d(50%, 50%, 0);
}
.cs-offcanvas-navigation__link--prev[aria-expanded=true]:before {
  transform: rotate(-45deg) translate3d(0, 0, 0);
  right: auto;
}
.cs-offcanvas-navigation__link--prev[aria-expanded=true]:after {
  transform: rotate(-135deg) translate3d(0, 0, 0);
  right: 0;
}
.cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
  left: 2.4rem;
}
.cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
  color: #000000;
}
.cs-offcanvas-navigation__icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.cs-offcanvas-navigation__icon path {
  fill: #000000;
}
.cs-offcanvas-navigation__category-icon-wrapper {
  position: relative;
  width: 2rem;
  margin-right: 1rem;
}
.cs-offcanvas-navigation__category-icon {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate3d(0, -50%, 0);
  max-height: 2rem;
}
.cs-offcanvas-navigation__text-parent {
  display: inline-block;
  padding-right: 1rem;
  font-size: 1rem;
  color: #888;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%;
}
@media (max-width: 23.115em) {
  .cs-header-user-nav {
    padding: 0 0.7rem;
  }
}
.cs-header-user-nav__item {
  margin-bottom: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: 1 1 25%;
}
.cs-header-user-nav__link {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex-direction: column;
  position: relative;
  width: 100%;
  padding: 1rem;
}
@media (max-width: 48em) {
  .cs-header-user-nav__link {
    align-items: center;
  }
}
.cs-header-user-nav__link:hover {
  text-decoration: none;
}
.cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
  fill: #000000;
}
.cs-header-user-nav__link:hover .cs-header-user-nav__label {
  color: #696969;
}
.cs-header-user-nav__link--search:hover {
  cursor: pointer;
}
.cs-header-user-nav__icon-wrapper {
  position: relative;
}
.cs-header-user-nav__icon {
  width: 1.6rem;
  height: 1.6rem;
  display: block;
  margin: 0 auto;
}
.cs-header-user-nav__icon path {
  fill: #484848;
}
.cs-header-user-nav__label {
  text-transform: uppercase;
  font-size: 1rem;
  font-weight: 300;
  margin-top: 0.3rem;
  color: #696969;
  text-decoration: none;
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
@media (min-width: 48em) {
  .cs-header-user-nav__label {
    clip: auto;
    -webkit-clip-path: none;
            clip-path: none;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: static;
    width: auto;
    white-space: normal;
  }
}
.cs-header-user-nav__qty-counter {
  display: inline-flex;
  background-color: #000000;
  color: #fff;
  border: 0;
  border-radius: 0.2rem;
  padding: 0 0.6rem;
  position: relative;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  line-height: 100%;
  font-weight: 700;
  height: 1.8em;
  background-clip: padding-box;
  position: absolute;
  right: -0.5rem;
  top: -0.5rem;
  transition: opacity 0.3s;
}
@media (min-width: 48em) {
  .cs-header-user-nav__qty-counter {
    right: -1rem;
  }
}
.cs-header-user-nav__qty-counter--wishlist {
  background-color: #000;
  color: #000;
  transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
}
.cs-header-user-nav__qty-counter--minicart {
  background-color: #e41f12;
  color: #fff;
  border-radius: 50% !important;
}
.cs-header-user-nav__qty-counter--compare {
  background-color: #000;
  color: #000;
}
.cs-header-user-nav__qty-counter--have-items {
  opacity: 1;
}
.cs-header-user-nav__qty-counter--wishlist-cloned {
  position: fixed;
  z-index: 1200;
  right: auto;
  opacity: 1;
  transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
}
.cs-header-user-nav__qty-counter--wishlist-animating {
  animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
  top: 0.5rem;
}
@media (min-width: 48em) {
  .cs-header-user-nav__qty-counter--wishlist-animating {
    top: 1.3rem;
  }
}
@media (min-width: 64em) {
  .cs-header-user-nav__qty-counter--wishlist-animating {
    top: 3.5rem;
  }
}
@keyframes move-qty-badge {
  0% {
    opacity: 1;
  }
  15% {
    transform: scale(1);
  }
  85% {
    opacity: 1;
    transform: scale(1.5);
  }
  95% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}
.cs-header-user-nav__qty-counter-span {
  min-width: 1ch;
}

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%;
}
.cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.cs-offcanvas-toggle:after {
  content: "";
  position: absolute;
  height: 2px;
  width: 100%;
  transform: scale(0);
  background: #000000;
  transition: transform 0.3s;
  bottom: 0;
  left: 0;
  transform-origin: left;
}
.cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
  background: #000000;
}
.cs-offcanvas-toggle--active:after {
  transform: scale(1);
}
.cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
  transform: rotate(-45deg);
}
.cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
  background: #fff;
}
.cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
  transform: rotate(90deg);
}
.cs-offcanvas-toggle__icon {
  padding: 0;
  margin: 0;
  position: relative;
}
.cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
  width: 1.8rem;
  height: 0.2rem;
  background: #000000;
  transition: background-color 0.3s, transform 0.3s;
}
.cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
  content: "";
  display: block;
  position: absolute;
}
.cs-offcanvas-toggle__icon:before {
  transform: translateY(-250%);
  transform: translate3d(0, -250%, 0);
}
.cs-offcanvas-toggle__icon:after {
  transform: translateY(250%);
  transform: translate3d(0, 250%, 0);
}
.cs-offcanvas-toggle__text {
  position: absolute;
  bottom: 0.5rem;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 0.8rem;
  color: #212121;
  text-transform: uppercase;
  transition: color 0.3s;
}
.cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
  color: #fff;
}
@media (min-width: 48em) {
  .cs-offcanvas-toggle__text {
    bottom: 2rem;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas {
  position: relative;
  z-index: 300;
}
.cs-offcanvas__drawer, .cs-offcanvas__overlay {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  top: 5rem;
}
@media (min-width: 48em) {
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    top: 8.3rem;
    bottom: 0;
  }
}
@media (min-width: 64em) {
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    display: none;
  }
}
.cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
  display: block;
  top: 0;
}
.cs-offcanvas__overlay {
  width: 100%;
  height: calc(100% - 5rem);
  background-color: transparent;
  transition: background-color 0.3s, transform 1ms 0.3s;
  transform: scale(0);
  cursor: pointer;
}
@media (min-width: 48em) {
  .cs-offcanvas__overlay {
    height: 100%;
  }
}
.cs-offcanvas--mini-cart .cs-offcanvas__overlay {
  height: 100%;
}
.cs-offcanvas .overlay--visible {
  transform: scale(1);
  background: rgba(0, 0, 0, 0.7);
  transition: background-color 0.3s;
}
.cs-offcanvas__drawer {
  position: fixed;
  background: #fff;
  transition: transform 0.3s;
  width: 90%;
  max-width: 40rem;
}
.cs-offcanvas--side_left .cs-offcanvas__drawer {
  left: 0;
  right: auto;
  transform: translate3d(-105%, 0, 0);
}
.cs-offcanvas--side_right .cs-offcanvas__drawer {
  left: auto;
  right: 0;
  transform: translate3d(105%, 0, 0);
}
.cs-offcanvas__drawer--navigation {
  left: 0;
  right: auto;
  transform: translate3d(-105%, 0, 0);
}
.cs-offcanvas .drawer--visible {
  transform: translate3d(0, 0, 0) !important;
}
.cs-offcanvas__spinner {
  position: absolute;
  width: 6rem;
  height: 6rem;
  left: 50%;
  top: 20%;
  margin-left: -3rem;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (min-width: 48em) {
  .cs-page-bottom {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
}
@media (min-width: 64em) {
  .cs-page-bottom {
    flex-wrap: nowrap;
    justify-content: space-between;
  }
}
.page-print .cs-page-bottom {
  display: none;
}
.cs-page-bottom__image {
  height: 3rem;
  width: auto;
}
.cs-page-bottom__image--circle {
  width: 4.7rem;
  height: 4.7rem;
  min-width: 4.7rem;
  min-height: 4.7rem;
  margin-right: 1rem;
}
.cs-page-bottom__text {
  font-size: 1.2rem;
  color: #696969;
  margin-bottom: 0;
  margin-right: 0.6rem;
}
.cs-page-bottom__text--small {
  font-size: 1rem;
}
.cs-page-bottom__group {
  display: flex;
  align-items: center;
  flex-grow: 1;
  flex-shrink: 1;
  justify-content: space-between;
}
@media (min-width: 48em) {
  .cs-page-bottom__group {
    width: 100%;
    padding: 1rem 0;
  }
}
@media (min-width: 64em) {
  .cs-page-bottom__group {
    width: auto;
    padding: 0;
  }
}
.cs-page-bottom__group--info {
  display: none;
  flex-direction: row-reverse;
}
@media (min-width: 48em) {
  .cs-page-bottom__group--info {
    display: flex;
    flex-basis: 40%;
    justify-content: flex-end;
    padding-right: 1.5rem;
  }
  .cs-page-bottom__group--info .cs-page-bottom__text {
    max-width: 20rem;
  }
}
@media (min-width: 64em) {
  .cs-page-bottom__group--info {
    flex-basis: 17%;
    padding-right: 0;
  }
  .cs-page-bottom__group--info .cs-page-bottom__text {
    max-width: 100%;
  }
}
.cs-page-bottom__group--shipping {
  display: none;
}
@media (min-width: 48em) {
  .cs-page-bottom__group--shipping {
    display: flex;
    flex-basis: 55%;
    padding-left: 1.5rem;
  }
}
@media (min-width: 64em) {
  .cs-page-bottom__group--shipping {
    flex-basis: 33%;
    padding-left: 4rem;
  }
}
.cs-page-bottom__group--payment {
  flex-basis: 50%;
}
@media (max-width: 47.99em) {
  .cs-page-bottom__group--payment .cs-page-bottom__text {
    display: none;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%;
  }
}
@media (min-width: 64em) {
  .cs-page-bottom__group--payment {
    padding-left: 4rem;
  }
}
@media (min-width: 64em) {
  .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
    position: relative;
  }
  .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
    margin: 0 1rem;
    content: "";
    position: absolute;
    left: 1rem;
    top: 50%;
    width: 0.2rem;
    height: 2rem;
    background: #dcdcdc;
    transform: translateY(-50%);
  }
}
.cs-page-bottom__logo {
  display: flex;
  flex-shrink: 1;
  height: 2rem;
}
@media (max-width: 63.99em) {
  .cs-page-bottom__logo {
    width: auto;
  }
}
.cs-page-bottom__logo--hermes {
  width: 12.2rem;
}
.cs-page-bottom__logo--dhl {
  height: auto;
  max-height: 2rem;
  min-width: 8.6rem;
  padding-left: 10px;
}
.cs-page-bottom__logo--paypal {
  width: 6.2rem;
}
.cs-page-bottom__logo--visa {
  height: auto;
  max-height: 2rem;
  min-width: 5.5rem;
}
.cs-page-bottom__logo--mastercard {
  width: 3.3rem;
}
.cs-page-bottom__logo--klarna-sofort {
  height: auto;
  max-height: 2.5rem;
  min-height: 2.5rem;
}
.cs-page-bottom__logo--klarna {
  width: 7rem;
}
.cs-page-bottom__logo--gls {
  width: 5rem;
}
.cs-page-bottom__logo--giropay {
  width: 4.8rem;
}
.cs-page-bottom__logo--ec {
  width: 1.8rem;
}
.cs-page-bottom__logo--paydirekt {
  width: 6rem;
}
.cs-page-bottom__logo--lastschrift {
  width: 6.15rem;
}
.cs-page-bottom__logo--vorkasse {
  width: 8.3rem;
}
.cs-page-bottom__logo--rechnung {
  width: 6.15rem;
}
.cs-page-bottom__logo:not(:last-child) {
  margin-right: 0.5rem;
}

.cs-container--page-bottom {
  max-width: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.page-title {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
  padding-bottom: 1rem;
  text-transform: none;
  font-weight: 600;
}
.page-title__headline {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  font-family: inherit;
  display: inline;
}
.page-title__span {
  color: #696969;
  font-weight: 300;
  padding: 0;
}

.catalog-category-view .page-title-wrapper .page-title {
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  padding-bottom: 0;
  margin: 1rem 0;
  text-align: center;
  font-size: 9rem;
  font-weight: 400;
}
@media (max-width: 48em) {
  .catalog-category-view .page-title-wrapper .page-title {
    font-size: 3.5rem;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.price-box {
  display: inline-block;
}
.price-box .price {
  font-weight: 700;
  white-space: nowrap;
}
.price-box .price-label {
  display: none;
}
.price-box .old-price .price {
  font-size: 0.65rem;
  text-decoration: line-through;
}
.price-box .old-price.no-display {
  display: none;
}
.price-box .special-price .price {
  padding-left: 0.4em;
}
.price-box .price {
  color: #000;
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
}
.price-box .price-label {
  color: #000;
  display: none;
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0 0.3rem 0.3rem 0;
}
.price-box .price-label:after {
  content: ":";
}
body:not(.page-product-bundle, .page-product-grouped) p:not(.price-from, .price-to) .price-box .price-label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.price-box .price-wrapper {
  display: flex;
}
.price-box .price-from,
.price-box .price-to {
  display: inline-block;
  margin: 0;
  padding: 0;
}
.price-box .price-from > .price-container,
.price-box .price-to > .price-container {
  font-size: 1.1rem;
}
.price-box .price-from .price-label,
.price-box .price-to .price-label {
  display: inline-block;
  padding: 0;
}
.price-box .old-price .price {
  text-decoration: line-through;
  color: #696969;
  font-size: 1.5rem;
  font-weight: 700;
}
.price-box .special-price .price {
  padding-left: 0;
  color: #000000;
  font-size: 1.5rem;
  font-weight: 700;
}
.price-box .special-price.active .price {
  color: #000000;
}
.price-box .price-from {
  margin-right: 1rem;
}
.cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
  display: none;
}
.price-box .price-container.price-final_price:not(:only-child) .price {
  color: #000000;
}

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0;
}

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative;
}
.minimal-price-link:after {
  color: #000;
  display: block;
  content: "-";
  right: -1rem;
  top: 0;
  position: absolute;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 0px;
  background-color: #fff;
  transition: border-color 0.3s;
}
.cs-product-tile--clickable:hover {
  cursor: pointer;
}
.cs-product-tile--hidden .cs-product-tile__main {
  visibility: hidden !important;
}
.cs-product-tile__container {
  height: auto;
  width: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  position: relative;
  padding: 1.5rem;
}
.cs-product-tile__link {
  display: block;
  height: 100%;
}
.cs-product-tile__thumbnail {
  padding: 0;
  min-height: 0;
}
.cs-product-tile__thumbnail-link {
  display: block;
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
  color: inherit;
  text-decoration: inherit;
}
.cs-product-tile__figure {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  text-align: center;
  max-width: 90rem;
  max-height: 120rem;
  margin: 0 auto;
}
.cs-product-tile__image {
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
}
.cs-product-tile__img {
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}
.cs-product-tile__img[src*=placeholder] {
  min-width: 70%;
  margin-top: 2rem;
}
.cs-product-tile__content {
  width: 100%;
  background-color: rgba(255, 255, 255, 0.8);
}
.cs-product-tile__main {
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 8rem;
  grid-template-areas: "badges addto" "swatches swatches" "name name" "description description" "collection-sku collection-sku" "price price" "review  addtocart" "stock addtocart" "wishlist-icons wishlist-icons";
}
.cs-product-tile__swatches {
  grid-area: swatches;
  display: flex;
  margin: 1rem 0 1rem;
  min-height: 2.6rem;
}
.cs-product-tile__swatches,
.cs-product-tile__swatches .swatch-attribute-options {
  justify-content: center;
}
@media (max-width: 47.99em) {
  .cs-product-tile__swatches,
.cs-product-tile__swatches .swatch-attribute-options {
    justify-content: flex-start;
  }
}
.cs-product-tile__brand {
  grid-area: brand;
  height: 2rem;
  margin-top: 1.5rem;
  text-align: center;
}
.cs-product-tile__brand--empty {
  height: 0;
}
.cs-product-tile__brand-text {
  font-size: 1.2rem;
  color: #888;
}
.cs-product-tile__name {
  text-transform: uppercase;
  grid-area: name;
  line-height: 1.8rem;
  font-weight: 400;
  font-size: 1.4rem;
  overflow: hidden;
  width: 100%;
  height: 2rem;
  margin: 0px;
  text-align: left;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.cs-product-tile__name a:hover {
  color: #212121 !important;
}
.cs-product-tile__name a:visited {
  color: #212121 !important;
}
.cs-product-tile__name-link {
  color: #212121;
  /* disabled because autoprefixer can't build this */
  /* stylelint-disable value-no-vendor-prefix */
  /* stylelint-disable property-no-vendor-prefix */
  /* stylelint-enable value-no-vendor-prefix */
  /* stylelint-enable property-no-vendor-prefix */
}
.cs-product-tile__name-link:visited {
  color: #212121;
}
.cs-product-tile__name-link:hover {
  color: #212121;
  text-decoration: underline;
}
.cs-product-tile__colection-sku-wrapper .cs-product-tile__collection,
.cs-product-tile__colection-sku-wrapper .cs-product-tile__sku {
  cursor: default;
  line-height: 1.8rem;
  font-weight: 400;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: #484848;
  overflow: hidden;
  height: 2rem;
  margin: 0;
  text-align: left;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.cs-product-tile__colection-sku-wrapper {
  grid-area: collection-sku;
  text-transform: uppercase;
  display: flex;
  gap: 0.5rem;
}
.cs-product-tile__price {
  grid-area: price;
  line-height: 1.2;
}
.cs-product-tile__price .price-box {
  display: flex;
  margin: 0;
  align-items: center;
  justify-content: flex-start;
}
.cs-product-tile__price .price-box .price {
  font-size: 1.5rem;
  font-weight: 700;
  color: #000;
}
.cs-product-tile__price .price-box .old-price .price {
  font-size: 1.5rem;
  font-weight: 700;
  color: #696969;
  text-decoration: line-through;
}
.cs-product-tile__price .price-box .special-price .price {
  font-size: 1.5rem;
  font-weight: 700;
  color: #000000;
}
.cs-product-tile__price .price-box .minimal-price {
  margin: 0;
  display: flex;
}
.cs-product-tile__price .price-box .old-price {
  order: -1;
}
.cs-product-tile__price .price-box .minimal-price {
  align-items: center;
}
.cs-product-tile__price .price-box .old-price .price {
  margin-right: 1rem;
}
.cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
  display: none;
}
.cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
  display: flex;
}
.cs-product-tile__review {
  grid-area: review;
  margin: 0.5rem 0 0;
}
.cs-product-tile__review:empty {
  margin: 0 !important;
}
.cs-product-tile__stock {
  grid-area: stock;
  display: inline-block;
  white-space: nowrap;
  font-size: 1.3rem;
  margin: 0;
  padding-bottom: 1.1rem;
  text-align: left;
}
.cs-product-tile__stock--in {
  color: #37b841;
}
.cs-product-tile__stock--out {
  color: #e41f12;
}
.cs-product-tile__addtocart {
  grid-area: addtocart;
  margin: 0 0 0;
}
@media (hover: hover) and (pointer: fine) {
  .cs-product-tile__addtocart {
    opacity: 0;
    transition: opacity 0.3s;
  }
  .cs-product-tile:hover .cs-product-tile__addtocart {
    opacity: 1;
  }
}
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button {
  min-height: 4rem;
}
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::before, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::after {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__success-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__fail-label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-icon, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__configure-icon {
  right: auto;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__loading {
  transform: scale(1) translate3d(-50%, -50%, 0);
}
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__button-icon,
.cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__configure-icon {
  display: none;
}
.cs-product-tile__addtocart-button {
  width: 8rem;
}
.cs-product-tile__addto {
  grid-area: addto;
  width: auto;
  margin: 0.5rem 0 0;
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
}
.cs-product-tile__addto .cs-links-block-addto__link {
  font-size: 1.3rem;
}
.cs-dashboard__bottom-wishlist .cs-product-tile__addto, .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
  display: none;
}
.cs-product-tile__addto:empty {
  margin: 0 !important;
}
.cs-product-tile__addto .cs-links-block-addto__link-label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-product-tile__badges {
  margin: 0;
  padding: 0;
  list-style: none;
  grid-area: badges;
  display: flex;
  flex-wrap: wrap;
  position: absolute;
  z-index: 2;
  top: 1rem;
  left: 1rem;
  flex-direction: column;
}
.cs-product-tile__badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background-color: #000000;
  color: #fff;
  border: 0;
  border-radius: 0px;
  padding: 0 0.7rem;
  font-size: 1.1rem;
  font-weight: 700;
  min-height: 2em;
  text-transform: uppercase;
  grid-area: badge;
}
@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem;
  }
}
.cs-product-tile__badge--discount {
  background-color: #e41f12;
  color: #fff;
}
.cs-product-tile__badge--discount .cs-product-tile__badge-text {
  line-height: normal;
}
.cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
  margin-left: 0.5rem;
}
.cs-product-tile__badge--new {
  background-color: #000;
  color: #000;
}
.cs-product-tile__badge--new .cs-product-tile__badge-text {
  line-height: normal;
}
.cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
  margin-left: 0.5rem;
}
.cs-product-tile__badge--free-shipping {
  background-color: #37b841;
  color: #fff;
}
.cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
  line-height: normal;
}
.cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
  margin-left: 0.5rem;
}
.cs-product-tile__badge--popular {
  background-color: #e41f12;
  color: #fff;
}
.cs-product-tile__badge--popular .cs-product-tile__badge-text {
  line-height: normal;
}
.cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
  margin-left: 0.5rem;
}
.cs-product-tile__badge--dailydeal {
  background-color: #e41f12;
  color: #fff;
}
.cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
  line-height: normal;
}
.cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
  margin-left: 0.5rem;
}
.cs-product-tile__badge-item {
  display: flex;
}
.cs-product-tile--grid .cs-product-tile__badge-item {
  margin: 0 0 0.25rem;
  width: 100%;
}
.cs-product-tile__badge-item:empty {
  display: none;
}
.cs-product-tile__badge-text {
  line-height: normal;
}
.cs-product-tile__badge-text + .cs-product-tile__badge-text {
  margin-left: 0.5rem;
}
.cs-product-tile__dailydeal {
  grid-area: dailydeal;
  margin: 0;
}
.cs-product-tile__qty {
  grid-area: qty;
  margin-bottom: 1rem;
  width: 11rem;
  margin-left: auto;
}
.cs-product-tile__description {
  grid-area: description;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.4;
  color: #696969;
  margin: 0 0 0.5rem;
}
.cs-product-tile__wishlist-remove-icon {
  position: absolute;
  top: 0;
  right: 0;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.5rem;
}
@media (pointer: fine) {
  .cs-product-tile__wishlist-remove-icon {
    display: none;
  }
}
.cs-product-tile__wishlist-remove-icon-image {
  width: 1.2rem;
  height: 1.2rem;
  fill: #888;
}
.cs-product-tile__wishlist-comment {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-product-tile__wishlist-actions {
  grid-area: wishlist-icons;
  margin: 0.5rem 0 0;
  display: flex;
  justify-content: space-between;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-products-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cs-products-list__item {
  margin: 0;
}
.cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
  border-bottom: 1px solid #f4f4f4;
  padding: 0;
}
.cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
  border-bottom: 0;
}
@media (min-width: 48em) {
  .cs-products-list--carousel .cs-products-list__item {
    border-bottom: 1px solid #f4f4f4;
    padding: 0;
  }
  .cs-products-list--carousel .cs-products-list__item:last-child {
    border-bottom: 0;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
.cs-qty-increment--wishlist {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-qty-increment__label {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-qty-increment__input {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #212121;
  background: #fff;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0px;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit;
  font-size: inherit;
  text-align: center;
  margin: 0;
  padding-left: 0.5em;
  padding-right: 0.5em;
  border-radius: 0;
  width: 0;
  min-width: 2ch;
  flex: 1 1;
  order: 2;
}
.cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
}
.cs-qty-increment__input::-moz-placeholder {
  opacity: 1;
  color: #888;
}
.cs-qty-increment__input::placeholder {
  opacity: 1;
  color: #888;
}
.cs-qty-increment__input[disabled] {
  opacity: 0.65;
}
.cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
  border-left-width: 0;
  border-right-width: 0;
  border-color: #dcdcdc;
}
.cs-qty-increment__input.mage-error {
  border-color: #e41f12 !important;
}
.cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
  border-color: #e41f12 !important;
}
.cs-qty-increment__input + .mage-error {
  order: 3;
  width: 100%;
}
.cs-qty-increment__button {
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
  max-width: 3rem;
  background-color: transparent;
  flex: 1 1 2rem;
  position: relative;
  padding-left: 0.5em;
  padding-right: 0.5em;
  border-radius: 0px;
}
.cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
  background-color: transparent;
  border: 1px solid #dcdcdc;
}
.cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
  fill: #000000;
}
.cs-qty-increment__button:hover, .cs-qty-increment__button:active {
  background-color: #000000;
  border: 1px solid #000000;
  cursor: pointer;
}
.cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
  fill: #fff;
}
.cs-qty-increment__button--decrement {
  order: 1;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.cs-qty-increment__button--increment {
  order: 2;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.cs-qty-increment__button--disabled {
  opacity: 1;
}
.cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
  background-color: transparent;
  border: 1px solid #dcdcdc;
  cursor: not-allowed;
}
.cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
  fill: #dcdcdc;
}
.cs-qty-increment__icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.cs-qty-increment__icon--decrement {
  width: 1.2rem;
  height: 0.3rem;
}
.cs-qty-increment__icon--increment {
  width: 1.2rem;
  height: 1.2rem;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
.cs-select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #212121;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s;
}
.cs-select:-moz-focusring, .cs-select::-moz-focus-inner {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.cs-select:hover:not([disabled]), .cs-select:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23000000'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
}
.cs-select[disabled] {
  opacity: 0.65;
}
.cs-select option {
  font-weight: 500;
  padding: 0;
  color: initial;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-skip-links__links {
  background-color: #000000;
  display: flex;
  justify-content: center;
}
.cs-skip-links__links:not(:focus):not(:focus-within) {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  clip: auto;
  -webkit-clip-path: none;
          clip-path: none;
}
.cs-skip-links__links:focus, .cs-skip-links__links:focus-within {
  clip: auto;
  -webkit-clip-path: none;
          clip-path: none;
  height: auto;
  margin: 0;
  overflow: visible;
  padding: 0;
  position: static;
  width: auto;
  white-space: normal;
  padding: 0.5rem 0;
  width: 100%;
  position: static;
}
.cs-skip-links a.cs-skip-links__link {
  color: #fff;
  padding: 0.5rem 1rem;
  font-size: 1.6rem;
  border: none;
  margin: 0.5rem;
  font-weight: 700;
  text-decoration: underline;
}
.cs-skip-links a.cs-skip-links__link:nth-of-type(n + 2) {
  display: none;
}
@media (min-width: 48em) {
  .cs-skip-links a.cs-skip-links__link:nth-of-type(n + 2) {
    display: block;
  }
  .cs-skip-links a.cs-skip-links__link:nth-of-type(n + 3) {
    display: none;
  }
}
@media (min-width: 64em) {
  .cs-skip-links a.cs-skip-links__link:nth-of-type(n + 2), .cs-skip-links a.cs-skip-links__link:nth-of-type(n + 3) {
    display: block;
  }
}
.cs-skip-links a.cs-skip-links__link:hover, .cs-skip-links a.cs-skip-links__link:focus, .cs-skip-links a.cs-skip-links__link:visited {
  cursor: pointer;
  color: #fff;
  text-decoration: underline;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 1rem;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  position: relative;
  border-radius: 1rem;
}
.ui-slider-horizontal .ui-slider-handle {
  width: 1rem;
  height: 1rem;
  background: #000000;
  transition: transform 0.3s, background 0.3s;
  cursor: pointer;
  position: absolute;
  border-radius: 50%;
  margin-left: -0.5rem;
}
.ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
  transform: scale(1.5);
  background: #666;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center;
}
@media (min-width: 48em) {
  .cs-social-media-list {
    justify-content: flex-start;
  }
}
@media (min-width: 48em) {
  .cs-social-media-list {
    padding-bottom: 0;
    padding-top: 0;
  }
}
.cs-social-media-list__item {
  margin: 0 0.4em;
  padding: 0;
}
.cs-social-media-list__link {
  display: flex;
  position: relative;
  height: 3.5em;
  min-width: 4em;
  background: #212121;
  color: inherit;
  border-radius: 0px;
  transition: background-color 0.15s linear;
}
.cs-social-media-list__link:hover {
  background: #666;
}
.cs-social-media-list__icon {
  position: absolute;
  transform: translate3d(-55%, -55%, 0);
  top: 50%;
  left: 55%;
}
.cs-social-media-list__item--fb .cs-social-media-list__icon {
  width: 0.9em;
  height: 1.8em;
}
.cs-social-media-list__item--tw .cs-social-media-list__icon {
  width: 2.5em;
  height: 2em;
}
.cs-social-media-list__item--yt .cs-social-media-list__icon {
  width: 1.8em;
  height: 2.1em;
}
.cs-social-media-list__item--gp .cs-social-media-list__icon {
  width: 2em;
  height: 2em;
  margin-top: 0.1em;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-star-rating {
  display: flex;
  align-items: center;
}
.cs-star-rating__stars {
  display: inline-flex;
  padding: 0;
  width: 7.2rem;
  justify-content: space-between;
}
.cs-star-rating--summary .cs-star-rating__stars {
  width: 10rem;
  padding: 0;
}
.cs-star-rating--review .cs-star-rating__stars {
  width: 7.2rem;
  padding: 0;
}
.cs-star-rating__star {
  width: 1.5rem;
  display: flex;
  height: 100%;
  fill: #888;
}
.cs-star-rating__star--active {
  fill: #fcb739;
}
.cs-star-rating__star--half-active .star-left {
  fill: #fcb739;
}
.cs-star-rating__star--half-active .star-right {
  fill: #888;
}
.cs-star-rating--summary .cs-star-rating__star {
  width: 2rem;
}
.cs-star-rating--review .cs-star-rating__star {
  width: 1.5rem;
}
.cs-star-rating__star path {
  fill-opacity: 1;
  fill: inherit;
}
.cs-star-rating img {
  width: 1.5rem;
  height: 100%;
}
.cs-star-rating__form-stars {
  display: inline-flex;
  padding: 0;
}
.cs-star-rating__form-star {
  opacity: 1;
  fill: #888;
  width: 100%;
}
.cs-star-rating__form-star--active {
  fill: #fcb739;
}
.cs-star-rating__form-star path {
  fill-opacity: 1;
  fill: inherit;
}
.cs-star-rating__form-star:nth-last-of-type() {
  padding-right: 0;
}
.cs-star-rating__form-stars:hover .cs-star-rating__form-star {
  fill: #fcb739;
}
.cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
  fill: #888;
}
.cs-star-rating__text {
  display: inline-block;
  color: #696969;
  padding-left: 0.5em;
  line-height: 1;
  padding-top: calc(1.5rem * 0.1);
}
.cs-star-rating__text--count:before {
  content: "(";
}
.cs-star-rating__text--count:after {
  content: ")";
}
.cs-star-rating__text--empty {
  padding-left: 0;
}
.cs-star-rating__text-annotation {
  display: inline;
  line-height: 1;
}
.cs-product-tile .cs-star-rating__text-annotation {
  display: none;
}
.cs-star-rating__label {
  color: #212121;
  font-size: 0.75em;
  font-weight: 700;
  text-transform: uppercase;
  padding-top: calc(1.5rem * 0.2);
}

.review-control-vote {
  overflow: hidden;
}
.review-control-vote .rating-1 {
  z-index: 1;
}
.review-control-vote .rating-1:before {
  content: none;
}
.review-control-vote .rating-2 {
  z-index: 2;
}
.review-control-vote .rating-2:before {
  content: none;
}
.review-control-vote .rating-3 {
  z-index: 3;
}
.review-control-vote .rating-3:before {
  content: none;
}
.review-control-vote .rating-4 {
  z-index: 4;
}
.review-control-vote .rating-4:before {
  content: none;
}
.review-control-vote .rating-5 {
  z-index: 5;
}
.review-control-vote .rating-5:before {
  content: none;
}
.review-control-vote:before {
  content: none;
}
.review-control-vote label {
  position: static;
  cursor: pointer;
  display: block;
  width: 3rem;
  padding-right: 1rem;
  line-height: 0;
}
@media (min-width: 48em) {
  .review-control-vote label {
    width: 2.6rem;
    padding-right: 0.6rem;
  }
}
.review-control-vote label:last-child {
  width: 2rem;
  padding-right: 0;
}
.review-control-vote label span {
  clip: auto;
  -webkit-clip-path: none;
          clip-path: none;
  height: auto;
  margin: 0;
  overflow: visible;
  padding: 0;
  position: static;
  width: auto;
  white-space: normal;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  flex-direction: column;
  flex-wrap: wrap;
}
.swatch-attribute.swatch-layered {
  font-size: 0.8em;
}
.swatch-attribute + .swatch-attribute {
  margin-top: 0.8em;
}

.swatch-attribute-label {
  order: 1;
  text-transform: uppercase;
  line-height: calc(3.2em - 6px + 0.1em );
  font-weight: 700;
  font-size: 1.1em;
  width: 10rem;
  margin-right: 1.5rem;
}
@media (min-width: 64em) {
  .swatch-attribute-label {
    width: 11rem;
  }
}
.swatch-attribute-label:after {
  content: ": ";
  line-height: calc(3.2em - 6px + 0.1em);
}

.swatch-attribute-selected-option {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

.swatch-attribute-options {
  order: 3;
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center;
}
.swatch-attribute-options:focus {
  box-shadow: none;
}
.swatch-opt .swatch-attribute-options {
  min-width: 0;
  justify-content: flex-start;
}
.mage-error {
  order: 2;
}

.swatch-option-link-layered {
  font-size: 1em;
}
.swatch-option-link-layered:hover {
  text-decoration: none;
}

.swatch-option {
  font-weight: 700;
  position: relative;
  min-width: 3.2em;
  height: 3.2em;
  padding: 0;
  margin: 6px;
  border-radius: 50px;
  background-color: #f4f4f4;
  border: 2px solid #dcdcdc;
  color: #000;
  cursor: pointer;
  line-height: calc(3.2em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
}
.swatch-option:before {
  content: "";
  position: absolute;
  top: -4px;
  left: -4px;
  right: -4px;
  bottom: -4px;
  border: unset;
  border-radius: 50px;
  transition: border-color 0.3s;
}
.swatch-option:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
  background: linear-gradient(to left top, #ffffff 0%, #ffffff 42%, #ffffff 43%, #ffffff 46%, #BCBBBC 47%, #BCBBBC 53%, #ffffff 54%, #ffffff 57%, #ffffff 58%, #ffffff 100%);
  width: 3.9rem;
  height: 3.9rem;
  background-size: 3.8rem;
  transition: opacity 0.3s;
  opacity: 0;
  border: 2px solid #bcbbbc;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.swatch-option.selected, .swatch-option.bis-selected {
  border: 2px solid #000000;
  background: #fff;
  font-weight: 700;
}
.swatch-option.selected:before, .swatch-option.bis-selected:before {
  border: unset;
}
.swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
  cursor: not-allowed;
}
.swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
  opacity: 50%;
  color: #b0b0b0;
  background: #fff;
}
.swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
  background: linear-gradient(to left top, #ffffff00 0%, #ffffff00 42%, #ffffff00 43%, #ffffff00 46%, #BCBBBC 47%, #BCBBBC 53%, #ffffff00 54%, #ffffff00 57%, #ffffff00 58%, #ffffff00 100%);
  width: 3.9rem;
  height: 3.9rem;
  background-size: 3.8rem;
  transition: opacity 0.3s;
  border: 2px solid #bcbbbc;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
  opacity: 1;
}
.swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
  border: 2px solid #000000;
  background: #fff;
}
.swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
  border: unset;
}

.modal-content .swatch-option:after,
.modal-content .swatch-option:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
  background: linear-gradient(to left top, #ffffff 0%, #ffffff 42%, #ffffff 43%, #ffffff 46%, #BCBBBC 47%, #BCBBBC 53%, #ffffff 54%, #ffffff 57%, #ffffff 58%, #ffffff 100%);
  width: 4.6rem;
  height: 4.6rem;
  background-size: 4.6rem;
  transition: opacity 0.3s;
  opacity: 0;
  border: 2px solid #bcbbbc;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.modal-content .swatch-option.disabled:before {
  opacity: 1;
  width: 4.6rem !important;
  height: 4.6rem !important;
}

.atalog-product-view .swatch-option.image {
  background-size: 4rem;
}

.products-grid .swatch-option.image {
  background-size: contain !important;
}

.swatch-input {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  left: -1000px;
  position: absolute;
  visibility: hidden;
}

.swatch-more {
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  color: #484848;
}
.swatch-more:hover {
  text-decoration: underline;
}

.swatch-option-tooltip,
.swatch-option-tooltip-layered {
  display: none;
  position: absolute;
  margin: 0;
  z-index: 999;
  background: #fff;
  border-radius: 0.5rem;
  color: #888;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 0.5rem;
  text-align: center;
  min-width: 2rem;
  border: 0.1rem solid #dcdcdc;
}
.swatch-option-tooltip .image,
.swatch-option-tooltip-layered .image {
  display: block;
  margin: 0 auto;
  width: 110px;
  height: 110px;
}
.swatch-option-tooltip .corner:after,
.swatch-option-tooltip-layered .corner:after {
  content: "";
  position: absolute;
  top: 100%;
  display: block;
  width: 1rem;
  height: 1rem;
  background-color: #fff;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-bottom: 0.1rem solid #dcdcdc;
  border-right: 0.1rem solid #dcdcdc;
  margin-top: calc(-0.5rem + 0.1rem);
}

.swatch-option-tooltip {
  pointer-events: none;
}

.missing-swatches-modal {
  max-width: 40rem;
  margin-left: auto;
}
.missing-swatches-modal .mage-error {
  padding-top: 0.8rem;
}
.missing-swatches-modal .swatch-attribute + .swatch-attribute {
  margin-top: 2rem;
}

@media (hover: none) {
  .missing-swatches-modal-visible .swatch-option-tooltip {
    display: none !important;
  }
}

.swatch-opt {
  font-size: 1.1em;
}
.swatch-opt .swatch-option.back-in-stock-alert:after {
  background: rgba(220, 220, 220, 0.55) url(../images/icons/notification-panel/icon_notification-outline.svg) center/64% no-repeat;
  opacity: 1;
}
.swatch-opt .swatch-option.back-in-stock-alert.text {
  padding-right: 2em;
}
.swatch-opt .swatch-option.back-in-stock-alert.text:after {
  left: auto;
  right: 0;
  background-color: transparent;
  transform: translateY(-50%);
}
.swatch-opt .mage-error {
  font-size: 1em;
  width: 100%;
  margin-left: 0;
}

[class^=swatch-opt-] {
  font-size: 0.45em;
  min-height: calc(1 * (3.2em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none;
}
@media (min-width: 48.01em) {
  [class^=swatch-opt-] {
    pointer-events: auto;
  }
}
[class^=swatch-opt-] .swatch-option.disabled.back-in-stock-alert, [class^=swatch-opt-] .swatch-option[disabled].back-in-stock-alert {
  cursor: not-allowed;
}
[class^=swatch-opt-] .swatch-option.disabled.back-in-stock-alert.text, [class^=swatch-opt-] .swatch-option[disabled].back-in-stock-alert.text {
  opacity: 0.65;
  color: #000;
  background: #fff;
}
[class^=swatch-opt-] .swatch-option.disabled.back-in-stock-alert.text:before, [class^=swatch-opt-] .swatch-option[disabled].back-in-stock-alert.text:before {
  border: 2px solid #dcdcdc;
}
[class^=swatch-opt-] .swatch-option.disabled.back-in-stock-alert.image:after, [class^=swatch-opt-] .swatch-option.disabled.back-in-stock-alert.color:after, [class^=swatch-opt-] .swatch-option[disabled].back-in-stock-alert.image:after, [class^=swatch-opt-] .swatch-option[disabled].back-in-stock-alert.color:after {
  opacity: 1;
}
[class^=swatch-opt-]:empty {
  opacity: 0;
}

.cs-product-tile__container .swatch-attribute.color .swatch-option {
  transition: all 0.2s ease-in-out;
  scale: 1;
}
.cs-product-tile__container .swatch-attribute.color .swatch-option:hover {
  scale: 1.3;
}
.cs-product-tile__container .swatch-attribute.color .swatch-option.selected,
.cs-product-tile__container .swatch-attribute.color .swatch-option.bis-selected {
  scale: 1.3;
}

.catalog-product-view .swatch-option.image {
  background-size: contain;
}
.catalog-product-view .swatch-option.image:hover {
  background-size: contain !important;
}

.block.products-related .cs-products-carousel__product-tile .swatch-option.image {
  background-size: contain !important;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-topbar {
  background: transparent;
  display: none;
  width: 100%;
  font-size: 1.1rem;
}
@media (min-width: 64em) {
  .cs-topbar {
    display: flex;
    z-index: 302;
  }
}
.cs-topbar__wrapper {
  display: flex;
  flex-wrap: wrap;
  flex-grow: 1;
  align-items: center;
  height: 2.7rem;
}
@media (min-width: 64em) {
  .cs-topbar__wrapper {
    flex-wrap: nowrap;
  }
}
.cs-topbar__item {
  color: #212121;
  display: flex;
  flex: 0 0 auto;
  white-space: nowrap;
  height: 100%;
}
.cs-topbar__item--usps {
  margin-right: auto;
  display: none;
}
@media (min-width: 80em) {
  .cs-topbar__item--usps {
    display: flex;
  }
}
.cs-topbar__item--hotline {
  align-items: center;
  flex: 1 1;
  justify-content: flex-end;
}
.cs-topbar__item--language {
  height: 100%;
}
.cs-topbar__list, .cs-topbar__item > ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.cs-topbar__list-item {
  margin-bottom: 0;
  height: 2.7rem;
  display: flex;
  align-items: center;
  position: relative;
}
.cs-topbar__list-item:not(:last-child) {
  padding-right: 1.3rem;
}
.cs-topbar__list-item:not(:last-child) {
  margin-right: 1.3rem;
}
.cs-topbar__list-item:not(:last-child):before {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  content: "";
  border-right: 0.2rem solid #fff;
}
.cs-topbar__text {
  color: #212121;
}
.cs-topbar__link {
  margin-right: 0.9rem;
}
.cs-topbar__link, .cs-topbar__link:visited {
  color: #000000;
  text-decoration: none;
}
.cs-topbar__link:hover, .cs-topbar__link:focus, .cs-topbar__link:active, .cs-topbar__link:visited:hover, .cs-topbar__link:visited:focus {
  color: #666;
  text-decoration: none;
}
.cs-topbar__hotline {
  display: flex;
  align-items: center;
}
.cs-topbar__phone-number {
  font-weight: 700;
  margin-right: 0.9rem;
}
.cs-topbar__phone-number, .cs-topbar__phone-number:visited {
  color: #000;
  text-decoration: none;
}
.cs-topbar__phone-number:hover, .cs-topbar__phone-number:focus, .cs-topbar__phone-number:active, .cs-topbar__phone-number:visited:hover, .cs-topbar__phone-number:visited:focus {
  color: #000;
  text-decoration: none;
}

.cs-container--top-bar {
  background-color: #f4f4f4;
  max-width: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}

h2 {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}

h3 {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}

h4 {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}

h5 {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}

h6 {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}

a, a:visited {
  color: #000000;
  text-decoration: none;
}
a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #666;
  text-decoration: none;
}

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem;
}
ul > li,
ol > li {
  margin: 0 0 1rem;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__picture {
  position: relative;
}
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__content,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__overlay,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__gradient,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__optimizer-container {
  z-index: 1;
}
.cs-image-teaser [data-video-teaser] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}
.cs-image-teaser [data-video-teaser]:empty {
  display: none;
}
.cs-image-teaser [id^=video-teaser] {
  width: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

.links.cs-header__user-nav.cs-header-user-nav .cs-header-user-nav__label {
  display: none;
}

.catalog-product-view .column.main {
  padding: 0rem;
}

@media (min-width: 48em) {
  .cs-container--page-pdp-details-nav {
    display: none;
  }
}
.product-info-main.cs-buybox .cs-buybox__section--product-form .product-options-bottom .cs-buybox__qty-wrapper {
  display: none;
}

.cs-product-details {
  max-width: 180rem;
  margin: 0 auto;
}
.cs-product-details .cs-product-details__item--main .cs-product-details__content .cs-product-details-main {
  flex-direction: column;
}
.cs-product-details .cs-product-details__item--reviews .cs-product-details__content {
  flex-direction: column;
}
.cs-product-details .cs-product-details__item--reviews .cs-product-details__content .cs-reviews-summary {
  border-right: none;
  padding-right: unset;
  margin-right: unset;
}

.cs-page-category {
  padding-bottom: 0 !important;
}
.cs-page-category .category-image {
  max-width: 180rem;
  margin: 0 auto;
  line-height: 0px;
}

#product-attribute-specs-table tr {
  display: flex;
}
#product-attribute-specs-table tr td {
  border-bottom: unset;
}

#fundacja-zdrowy-biust {
  border: 2px solid #ffd9dd;
  background-color: #fff5f6;
  padding: 10px;
}
#fundacja-zdrowy-biust a {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 13px;
  color: #ec6ea5;
}

.product-aditional-modals {
  display: flex;
  flex-wrap: wrap;
}
.product-aditional-modals #product-size-modal,
.product-aditional-modals #product-delivery-modal {
  width: 50%;
  display: flex;
  justify-content: center;
}
.product-aditional-modals #product-size-modal .custom-modal-open,
.product-aditional-modals #product-delivery-modal .custom-modal-open {
  background: transparent;
  color: #484848;
  font-weight: 400;
}
.product-aditional-modals #product-foundation-modal {
  width: 100%;
}

.checkout-index-index .cs-progress-bar__item._active .cs-progress-bar__indicator:before {
  color: white;
}

.eu-delivery-wrapper {
  background: #fc0;
  border: 2px solid #fc0;
  padding: 5px 10px;
  display: flex;
  flex-direction: row;
  width: -moz-fit-content;
  width: fit-content;
}

.eu-delivery-wrapper .eu-delivery-text {
  text-transform: uppercase;
  font-weight: 700;
  margin-right: 16px;
  text-align: center;
}

.eu-delivery-wrapper:hover {
  color: initial;
}

.eu-delivery-wrapper:hover {
  border-color: #f3c202;
}

.eu-delivery-wrapper img {
  width: 50px;
}

.cs-product-tile__main.product-item-details > .cs-product-tile__colection-sku-wrapper {
  align-items: center;
}

.cs-product-tile__main.product-item-details > .cs-product-tile__colection-sku-wrapper > .cs-product-tile__collection {
  line-height: 21px;
}

.cs-product-tile__main.product-item-details > .cs-product-tile__colection-sku-wrapper > .cs-product-tile__sku {
  line-height: 21px;
}

.cms-firma-corin p {
  margin: 2rem;
}

.cs-dashboard .form.create.account .choice {
  display: block;
}
.cs-dashboard .form.create.account .choice .field-tooltip-content {
  margin-top: 1rem;
}

.form .field + .field button {
  margin-top: 1rem;
}

.cs-checkout__sidebar .table-caption {
  margin-top: 2rem;
}

.product-info-main .cs-buybox__section.cs-buybox__section--product-form {
  display: flex;
  flex-direction: column-reverse;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form #product_addtocart_form {
  order: 1;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .cs-indicator-fast-shipping {
  cursor: default;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .product-info-form-after {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
  margin: 0 0 1rem;
  cursor: default;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .product-info-form-after #product-delivery-modal {
  cursor: pointer;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .product-info-form-after #product-delivery-modal .custom-modal-open {
  background: transparent;
  color: #37b841;
  padding: 0px;
  margin: 0px;
  margin-left: 6px;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 1.2rem;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .product-info-form-after #product-delivery-modal .custom-modal-open span {
  text-decoration: underline;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .product-info-form-after .stock.cs-buybox__stock {
  margin: 0px;
}
.product-info-main .cs-buybox__section.cs-buybox__section--product-form .product-info-form-after .stock.cs-buybox__stock .cs-buybox__stock-icon.cs-buybox__stock-icon--available {
  width: 2.4em;
  height: 2.4em;
}

.product-info-main .product-aditional-modals #product-gpsr-modal {
  width: 50%;
  display: flex;
  justify-content: center;
}
.product-info-main .product-aditional-modals #product-gpsr-modal .custom-modal-open {
  background: white;
  color: #484848;
  font-weight: 400;
}

@media (max-width: 48em) {
  .product-info-main .product-aditional-modals #product-size-modal .custom-modal-open {
    margin: 0;
  }
  .product-info-main .product-aditional-modals #product-gpsr-modal .custom-modal-open {
    margin: 0;
  }
}
.cs-page-product__buybox .product-info-main.cs-buybox {
  width: -webkit-fill-available;
}

.product-info-sklad-konserwacja {
  display: flex;
  flex-direction: row;
}
.product-info-sklad-konserwacja .product-info-sklad {
  width: 50%;
}
.product-info-sklad-konserwacja .product-info-konserwacja {
  width: 50%;
}
.product-info-sklad-konserwacja .product-info-konserwacja .konserwacja.wrapper {
  row-gap: 0.5rem;
  display: flex;
  flex-direction: column;
}
.product-info-sklad-konserwacja .product-info-konserwacja .konserwacja-item {
  display: flex;
  align-items: center;
  gap: 15px;
}

@media (max-width: 48em) {
  .product-info-sklad-konserwacja {
    display: flex;
    flex-direction: column;
  }
  .product-info-sklad-konserwacja .product-info-sklad {
    width: 100%;
  }
  .product-info-sklad-konserwacja .product-info-konserwacja {
    width: 100%;
  }
}
.cs-product-details-main__item--description .cs-product-details-main__content {
  display: flex;
  flex-direction: column;
}
.cs-product-details-main__item--description .cs-product-details-main__content .product.attribute.description {
  order: 1;
}
.cs-product-details-main__item--description .cs-product-details-main__content .product-info-sklad-konserwacja {
  order: 2;
}
.cs-product-details-main__item--description .cs-product-details-main__content .product-info-trusted-reviews-section {
  order: 3;
  margin-top: 2rem;
}

.section-wrapper.section-6.row.home-section-6 .section-caption {
  text-align: center;
}
.section-wrapper.section-6.row.home-section-6 .slider-items-wraper .block {
  padding-left: 10px;
  padding-right: 10px;
}
.fotorama__stage__frame.fotorama-video-container .product-video {
  aspect-ratio: 3/4.5;
  height: 100%;
  width: auto;
}
.fotorama__stage__frame.fotorama-video-container .product-video .ytp-gradient-top {
  display: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.blog-page #maincontent,
.blog-post-view #maincontent {
  max-width: 1140px;
}
.blog-page .column.main,
.blog-post-view .column.main {
  padding: 2rem 0 0;
}
.blog-page .page-title-wrapper .page-title,
.blog-post-view .page-title-wrapper .page-title {
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 400;
  text-transform: uppercase;
  margin: 8rem 0 1rem;
  padding: 0px;
}
@media (max-width: 48em) {
  .blog-page .page-title-wrapper .page-title,
.blog-post-view .page-title-wrapper .page-title {
    margin: 2rem 0 1rem;
  }
}
.blog-page .cs-breadcrumbs,
.blog-post-view .cs-breadcrumbs {
  display: flex;
  align-items: center;
  flex-direction: row;
  justify-content: center;
  padding-top: 0px;
  margin-bottom: 4rem;
}
@media (max-width: 48em) {
  .blog-page .cs-breadcrumbs,
.blog-post-view .cs-breadcrumbs {
    margin-bottom: 0;
  }
}
.blog-page .widget.block.block-categories .block-title,
.blog-post-view .widget.block.block-categories .block-title {
  display: none;
}
.blog-page .widget.block.block-categories .accordion,
.blog-post-view .widget.block.block-categories .accordion {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  border-bottom: 1px solid #f4f4f4;
  margin-bottom: 4rem;
}
@media (max-width: 48em) {
  .blog-page .widget.block.block-categories .accordion,
.blog-post-view .widget.block.block-categories .accordion {
    margin-bottom: 1em;
  }
}
.blog-page .widget.block.block-categories .accordion .item,
.blog-post-view .widget.block.block-categories .accordion .item {
  padding: 1rem;
  margin: 0 0.5rem;
  text-transform: uppercase;
  position: relative;
}
.blog-page .widget.block.block-categories .accordion .item a,
.blog-post-view .widget.block.block-categories .accordion .item a {
  color: #484848;
}
.blog-page .widget.block.block-categories .accordion .item a:hover,
.blog-post-view .widget.block.block-categories .accordion .item a:hover {
  color: #484848;
  text-decoration: none;
}
.blog-page .widget.block.block-categories .accordion .item::after,
.blog-post-view .widget.block.block-categories .accordion .item::after {
  content: "";
  position: absolute;
  width: auto;
  transform: scaleX(0);
  height: 1px;
  bottom: 10px;
  left: 0.7em;
  right: 0.7em;
  background-color: #000000;
  transform-origin: bottom right;
  transition: transform 0.25s ease-out;
}
.blog-page .widget.block.block-categories .accordion .item:hover::after,
.blog-post-view .widget.block.block-categories .accordion .item:hover::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}
@media (min-width: 48em) {
  .blog-page div.post-list-wrapper .post-list-item.col-md-12:first-child .post-content,
.blog-post-view div.post-list-wrapper .post-list-item.col-md-12:first-child .post-content {
    display: flex;
    align-items: center;
  }
  .blog-page div.post-list-wrapper .post-list-item.col-md-12:first-child .post-content .post-ftimg-hld,
.blog-post-view div.post-list-wrapper .post-list-item.col-md-12:first-child .post-content .post-ftimg-hld {
    width: 66%;
  }
  .blog-page div.post-list-wrapper .post-list-item.col-md-12:first-child .post-content .post-description,
.blog-post-view div.post-list-wrapper .post-list-item.col-md-12:first-child .post-content .post-description {
    width: 33%;
    padding: 10px 15px;
  }
}
.blog-page div.post-list-wrapper .post-list-item .post-holder,
.blog-post-view div.post-list-wrapper .post-list-item .post-holder {
  height: calc(100% - 40px);
}
.blog-page h2.post-title,
.blog-post-view h2.post-title {
  text-transform: none;
  font-size: 2.8rem;
  font-weight: 700;
}
.blog-page h2.post-title a,
.blog-post-view h2.post-title a {
  text-decoration: underline !important;
  color: #212121;
}
.blog-page .block-tagclaud .block-title,
.blog-post-view .block-tagclaud .block-title {
  display: none;
}
.blog-page .block-tagclaud .tagclaud-hld,
.blog-post-view .block-tagclaud .tagclaud-hld {
  display: flex;
  flex-wrap: wrap;
  margin: 2rem;
  justify-content: center;
  align-items: center;
}
.blog-page .block-tagclaud .tagclaud-hld span,
.blog-post-view .block-tagclaud .tagclaud-hld span {
  border: 1px solid #000000;
  padding: 1rem;
  margin: 1rem;
}
.blog-page #post-comments .c-replyform textarea,
.blog-post-view #post-comments .c-replyform textarea {
  width: 100%;
  min-height: 150px;
}
.blog-page #post-comments .c-replyform textarea,
.blog-page #post-comments .c-replyform input,
.blog-post-view #post-comments .c-replyform textarea,
.blog-post-view #post-comments .c-replyform input {
  border: 1px solid #dcdcdc;
}
.blog-page #post-comments .c-replyform button,
.blog-post-view #post-comments .c-replyform button {
  background-color: #000000;
}

.toolbar.toolbar-blog-posts .cs-pagination__content {
  display: flex;
  justify-content: center;
  margin: 1rem 0;
}
.toolbar.toolbar-blog-posts .cs-pagination__content .pages-label {
  margin: 0;
}
.toolbar.toolbar-blog-posts .cs-pagination__content .pages-item-previous,
.toolbar.toolbar-blog-posts .cs-pagination__content .pages-item-next {
  margin: 0 1rem;
}
.toolbar.toolbar-blog-posts .cs-pagination__content svg {
  height: 15px;
}
.toolbar.toolbar-blog-posts .items.pages-items {
  display: flex;
}
.toolbar.toolbar-blog-posts .items.pages-items .item {
  margin: 0 1rem;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.custom-modal-open {
  background-color: pink;
  padding: 1rem;
  margin-top: 1rem;
  border: none;
  width: -moz-fit-content;
  width: fit-content;
  color: white;
  font-size: 1.7rem;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
}
@media (max-width: 48em) {
  .custom-modal-open {
    margin-left: 1.5rem;
  }
}
.custom-modal-open .present {
  margin-right: 1rem;
  animation: tilt-shaking 1s;
  animation-iteration-count: infinite;
}
@keyframes tilt-shaking {
  0% {
    transform: rotate(0deg);
  }
  10% {
    transform: rotate(8deg);
  }
  20% {
    transform: rotate(0deg);
  }
  30% {
    transform: rotate(-8deg);
  }
  40% {
    transform: rotate(0deg);
    transform: translateY(-5px);
  }
}
.custom-modal-open .rozmiar,
.custom-modal-open .dostawa {
  margin-right: 1rem;
}

.custom-modal {
  display: none;
  z-index: -1;
  opacity: 0;
  height: 0px;
  width: 0px;
}
.custom-modal .content {
  z-index: -1;
}
.custom-modal .custom-modal-close {
  background-color: black;
  padding: 1rem;
  margin: 1rem;
  border: none;
  width: -moz-fit-content;
  width: fit-content;
  color: white;
  font-size: 1.7rem;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem auto;
  cursor: pointer;
}

.custom-modal.open {
  z-index: 997;
  opacity: 1;
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.custom-modal.open .content {
  padding: 2rem;
  z-index: 999;
  max-width: 95vw;
  max-height: 95vh;
  min-width: 300px;
  min-height: 300px;
  overflow: scroll;
  background-color: white;
  margin: 0 auto;
  width: 800px;
  height: -moz-fit-content;
  height: fit-content;
}
.custom-modal.open .overlay {
  z-index: 998;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  background-color: #000000b3;
}

#modal-rozmiarowka .table-responsive-s {
  overflow: scroll;
}
#modal-rozmiarowka .table-responsive-s .table {
  width: 1200px;
  max-width: 1200px;
}
#modal-rozmiarowka .table-responsive-s .sticky {
  position: sticky;
  left: 0;
  background: white;
}

#modal-dostawa .table {
  width: 1200px;
  max-width: 1200px;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-header__search.cs-header__search--active {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
}
.cs-header__search.cs-header__search--active .cs-header-search {
  position: block;
  background: white;
  margin: 0 auto;
  max-width: 180rem;
  width: 100%;
}
@media (min-width: 48em) {
  .cs-header__search.cs-header__search--active .cs-header-search {
    padding: 2rem;
  }
}
.cs-header__search.cs-header__search--active #search_autocomplete {
  transform: none;
  display: block !important;
  position: relative !important;
  height: calc(100% - 60px);
  top: 0;
  left: 0;
  box-shadow: unset;
  overflow: scroll;
  min-width: 100% !important;
  width: 100%;
  max-width: 180rem;
  max-height: unset;
}
.cs-header__search.cs-header__search--active #search_autocomplete dl {
  border-top: unset;
}
.cs-header__search.cs-header__search--active #search_autocomplete dd {
  border-bottom: unset;
}
.cs-header__search.cs-header__search--active .cs-header-search__field::before {
  display: none;
}
.cs-header__search.cs-header__search--active .cs-header-search__field::after {
  display: none;
}
.cs-header__search.cs-header__search--active .cs-header-search__field .cs-header-search__input {
  font-size: 2.5rem;
  padding: 0.75rem 1rem;
  border: none;
  border-bottom: 1px solid #888888;
}
@media (min-width: 48em) {
  .cs-header__search.cs-header__search--active .cs-header-search__field .cs-header-search__input {
    font-size: 3.5rem;
  }
}
.cs-header__search.cs-header__search--active .cs-header-search__field .cs-header-search__action .cs-header-search__button {
  display: none;
}
.cs-header__search.cs-header__search--active .cs-header-search__field .cs-header-search__action .cs-header-search__close svg {
  width: 4rem;
  height: 4rem;
}
@media (min-width: 48em) {
  .cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result {
    display: grid;
    grid-template-columns: 1fr 3fr;
    grid-template-rows: repeat(3, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    height: inherit;
  }
  .cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .term {
    grid-area: 1/1/2/2;
  }
  .cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .product {
    grid-area: 1/2/4/3;
  }
  .cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .product_attribute {
    grid-area: 2/1/3/2;
  }
  .cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .category {
    grid-area: 3/1/4/2;
    padding-bottom: 0 !important;
  }
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .category {
  padding-bottom: 3rem;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product {
  display: flex;
  flex-wrap: wrap;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .autocomplete-list-title {
  width: 100%;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item {
  display: flex;
  flex-direction: column;
  width: 50%;
  height: -moz-fit-content;
  height: fit-content;
}
@media (min-width: 48em) {
  .cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item {
    width: 25%;
  }
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item:hover {
  background: white;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-image-box {
  width: 100%;
  margin-right: 0px;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-image-box img {
  max-width: 300px;
  max-height: 400px;
  width: 100%;
  height: 100%;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .cs-autocomplete__item-details {
  width: 100%;
  flex: unset;
  max-width: 300px;
  margin: 0 auto;
}
.cs-header__search.cs-header__search--active .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .cs-autocomplete__item-details .cs-autocomplete__item-name {
  color: #333333;
  font-weight: 400;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cms-home .page-title {
  width: 100%;
  text-align: center;
  margin: 0;
  padding: 0;
  background-color: #d5868e;
}
.cms-home .page-title h1 {
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-size: 4rem;
  font-weight: 400;
  margin: 0;
  padding: 2rem;
  color: white;
  text-transform: unset;
}
@media (max-width: 63.99em) {
  .cms-home .page-title h1 {
    font-size: 3rem;
  }
}
@media (max-width: 47.99em) {
  .cms-home .page-title h1 {
    font-size: 2.5rem;
  }
}
.cms-home .column.main .cs-container.cs-container--static-block:nth-child(3) {
  background-color: #FEF5FB;
}
.cms-home .column.main .cs-container.cs-container--static-block:nth-child(7) {
  background-color: #FEF5FB;
}
.cms-home .column.main .section-wrapper.section-1 {
  margin: 3rem 0 !important;
}
.cms-home .column.main .section-wrapper.section-7,
.cms-home .column.main .section-wrapper.section-3,
.cms-home .column.main .section-wrapper.section-4,
.cms-home .column.main .section-wrapper.section-5,
.cms-home .column.main .section-wrapper.section-6 {
  margin: 4rem auto !important;
}
@media (max-width: 48em) {
  .cms-home .column.main .section-wrapper.section-7,
.cms-home .column.main .section-wrapper.section-3,
.cms-home .column.main .section-wrapper.section-4,
.cms-home .column.main .section-wrapper.section-5,
.cms-home .column.main .section-wrapper.section-6 {
    margin: 2rem auto !important;
  }
}
.cms-home .column.main .section-wrapper {
  margin: 0;
}
.cms-home .slick-track {
  display: flex;
}
.cms-home .section-wrapper.section-1 .col-md-6 {
  padding: 0px;
  position: relative;
  display: flex;
  justify-content: center;
}
.cms-home .section-wrapper.section-1 .col-md-6 a {
  display: flex;
  justify-content: center;
}
.cms-home .section-wrapper.section-1 .col-md-6 .content {
  position: absolute;
  bottom: 0;
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem;
  margin: 2rem;
  background-color: #00000066;
  max-width: 355px;
  width: 100%;
}
.cms-home .section-wrapper.section-1 .col-md-6 .content h2 {
  text-transform: uppercase;
  color: white;
  margin: 1rem 0;
  font-size: 3rem;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
}
.cms-home .section-wrapper.section-1 .col-md-6 .content span {
  font-size: 1.5rem;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-1 .col-md-6 .content {
    padding: 3rem 3rem;
    margin: 3rem;
    max-width: 375px;
  }
  .cms-home .section-wrapper.section-1 .col-md-6 .content h2 {
    font-size: 3rem;
  }
  .cms-home .section-wrapper.section-1 .col-md-6 .content span {
    font-size: 1.7rem;
  }
}
@media (min-width: 64em) {
  .cms-home .section-wrapper.section-1 .col-md-6 .content {
    padding: 4rem 7rem;
    margin: 4rem;
    max-width: 505px;
  }
}
.cms-home .section-wrapper.section-1 .col-md-6.col-md-6:last-child {
  margin-top: 10px;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-1 .col-md-6.col-md-6:first-child {
    padding-right: 5px;
  }
  .cms-home .section-wrapper.section-1 .col-md-6.col-md-6:last-child {
    padding-left: 5px;
    margin-top: 0px;
  }
}
.cms-home .section-wrapper.section-2 {
  padding-bottom: 3rem;
}
.cms-home .section-wrapper.section-2 .title {
  display: flex;
  justify-content: center;
  text-align: center;
  padding: 2rem;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-2 .title {
    padding: 3rem;
  }
}
.cms-home .section-wrapper.section-2 .title h2 {
  text-transform: uppercase;
  font-size: 1.8rem;
  color: #7A2B77;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
  margin: 0px;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-2 .title h2 {
    font-size: 3rem;
  }
}
.cms-home .section-wrapper.section-2 .slick-list.draggable {
  overflow: hidden;
}
.cms-home .section-wrapper.section-2 .product-item-details {
  display: flex;
  flex-direction: column;
}
.cms-home .section-wrapper.section-2 .product-item-info {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cms-home .section-wrapper.section-2 .product-item-name {
  max-width: 240px;
  text-align: left;
}
.cms-home .section-wrapper.section-2 .product-item-name a {
  color: #7A2B77;
  line-height: 1.8rem;
  font-weight: 400;
  font-size: 1.4rem;
}
.cms-home .section-wrapper.section-2 .price-wrapper {
  justify-content: center;
}
.cms-home .section-wrapper.section-2 .price-wrapper .price {
  color: #7A2B77;
  font-weight: 400;
}
.cms-home .section-wrapper.section-3 {
  max-width: 1200px;
  overflow: hidden;
}
.cms-home .section-wrapper.section-3 .container {
  padding: 0;
}
.cms-home .section-wrapper.section-3 .container video {
  position: relative;
  width: 100%;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-3 .container video {
    position: absolute;
  }
}
.cms-home .section-wrapper.section-3 .img-wrappper {
  background-color: white;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-3 .img-wrappper {
    margin-bottom: 2rem;
  }
}
.cms-home .section-wrapper.section-3 .img-wrappper .row {
  background-color: white;
  margin: 0;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-3 .img-wrappper .row {
    flex-direction: row;
  }
}
.cms-home .section-wrapper.section-3 .img-wrappper h3 {
  color: #484848;
  font-size: 3rem;
  text-transform: uppercase;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
  margin: 0;
}
.cms-home .section-wrapper.section-3 .img-wrappper p {
  color: #484848;
  font-size: 1.5rem;
  font-weight: 400;
  text-transform: unset;
  padding-bottom: 1rem;
  margin: 1rem 0 1rem;
}
.cms-home .section-wrapper.section-3 .img-wrappper a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  color: #484848;
  background: white;
  padding: 1rem 4rem;
  border: 1px solid #484848;
  font-weight: 700;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-3 .img-wrappper a {
    width: 100%;
    text-align: center;
  }
}
.cms-home .section-wrapper.section-4 .title {
  display: flex;
  justify-content: center;
  text-align: center;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-4 .title {
    padding: 3rem;
  }
}
.cms-home .section-wrapper.section-4 .title h2 {
  text-transform: uppercase;
  color: #57565A;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
  margin: 0px;
  font-size: 2rem;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-4 .title h2 {
    font-size: 3rem;
  }
}
.cms-home .section-wrapper.section-4 .popular-categories-wraper {
  justify-content: center;
  overflow: hidden;
}
.cms-home .section-wrapper.section-4 .popular-categories-wraper .block {
  text-align: center;
  padding: 1rem;
}
.cms-home .section-wrapper.section-4 .popular-categories-wraper .block h3 {
  color: #57565A;
  font-weight: 400;
  font-size: 1.7rem;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-4 .popular-categories-wraper .block h3 {
    font-size: 2rem;
  }
}
.cms-home .section-wrapper.section-5 .title {
  text-align: center;
  flex-direction: column;
  align-items: center;
}
.cms-home .section-wrapper.section-5 .title h2 {
  color: #c09197;
  font-size: 3rem;
  text-transform: uppercase;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
}
.cms-home .section-wrapper.section-5 .title span {
  color: #c09197;
  font-size: 2rem;
}
.cms-home .section-wrapper.section-5 .title .stars {
  display: flex;
  justify-content: center;
  margin: 2rem 0;
}
.cms-home .section-wrapper.section-5 .title .stars .star::before {
  content: url("../images/icons/star.svg");
  width: 40px;
  height: 40px;
  display: block;
}
.cms-home .section-wrapper.section-5 .content {
  display: flex;
}
.cms-home .section-wrapper.section-5 .content .left {
  width: 20%;
  align-items: flex-end;
}
.cms-home .section-wrapper.section-5 .content .left .top {
  margin-top: 30px;
}
@media (max-width: 1250px) {
  .cms-home .section-wrapper.section-5 .content .left .top {
    margin-top: 0px;
  }
}
.cms-home .section-wrapper.section-5 .content .left .bottom {
  margin-left: 30px;
}
@media (max-width: 1250px) {
  .cms-home .section-wrapper.section-5 .content .left .bottom {
    margin-left: 0px;
  }
}
.cms-home .section-wrapper.section-5 .content .center {
  width: 60%;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
.cms-home .section-wrapper.section-5 .content .center a {
  padding: 1rem 2rem;
  margin: 2rem;
  background: #f2cad4;
  color: white;
  text-transform: uppercase;
  font-weight: 300;
  font-size: 2rem;
}
.cms-home .section-wrapper.section-5 .content .center .arrow::before {
  content: url("../images/icons/written-arrow.svg");
  width: 250px;
  position: absolute;
}
.cms-home .section-wrapper.section-5 .content .center .arrow-top-left::before {
  left: 0;
  top: 50px;
}
.cms-home .section-wrapper.section-5 .content .center .arrow-top-right::before {
  right: 0;
  top: 50px;
  transform: scaleX(-1);
}
.cms-home .section-wrapper.section-5 .content .center .arrow-bottom-right::before {
  right: 25px;
  width: 230px;
  bottom: 100px;
  transform: rotate(172deg);
}
.cms-home .section-wrapper.section-5 .content .center .arrow-bottom-left::before {
  left: 0;
  bottom: 90px;
  width: 270px;
  transform: scaleX(-1) rotate(175deg);
}
@media (max-width: 1700px) {
  .cms-home .section-wrapper.section-5 .content .center .arrow::before {
    width: 220px;
  }
}
@media (max-width: 1500px) {
  .cms-home .section-wrapper.section-5 .content .center .arrow::before {
    width: 200px;
  }
}
@media (max-width: 1350px) {
  .cms-home .section-wrapper.section-5 .content .center .arrow::before {
    width: 180px;
  }
}
@media (max-width: 1250px) {
  .cms-home .section-wrapper.section-5 .content .center .arrow::before {
    display: none;
  }
}
.cms-home .section-wrapper.section-5 .content .right {
  width: 20%;
}
.cms-home .section-wrapper.section-5 .content .right .top {
  margin-left: 30px;
}
@media (max-width: 1250px) {
  .cms-home .section-wrapper.section-5 .content .right .top {
    margin-left: 0px;
  }
}
.cms-home .section-wrapper.section-5 .content .left,
.cms-home .section-wrapper.section-5 .content .right {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.cms-home .section-wrapper.section-5 .content .left img,
.cms-home .section-wrapper.section-5 .content .right img {
  width: 150px;
  height: 150px;
  border: 4px solid #c09197;
  border-radius: 50%;
}
.cms-home .section-wrapper.section-5 .content .left p,
.cms-home .section-wrapper.section-5 .content .right p {
  color: #c09197;
  font-size: 1.7rem;
}
.cms-home .section-wrapper.section-6 {
  align-items: center;
}
.cms-home .section-wrapper.section-6 .image {
  padding: 0;
  overflow: hidden;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-6 .image {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 2rem;
  }
}
.cms-home .section-wrapper.section-6 .products {
  padding: 0;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-6 .products {
    padding-right: 15px;
    padding-left: 15px;
  }
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-6 .products {
    max-width: 600px;
    margin: 0 auto;
  }
}
.cms-home .section-wrapper.section-6 .products > h3 {
  font-size: 2rem;
  margin: 0;
  text-transform: uppercase;
  color: #484848;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
}
@media (min-width: 48em) {
  .cms-home .section-wrapper.section-6 .products > h3 {
    font-size: 3rem;
  }
}
.cms-home .section-wrapper.section-6 .products > p {
  font-size: 1.7rem;
  margin-bottom: 3rem;
  color: #484848;
}
.cms-home .section-wrapper.section-6 .block-products-list {
  overflow: hidden;
}
.cms-home .section-wrapper.section-6 .block-products-list .product-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-6 .block-products-list .product-item .product-item-info {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}
.cms-home .section-wrapper.section-6 .block-products-list .product-item .product-item-details {
  max-width: 240px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.cms-home .section-wrapper.section-6 .block-products-list .product-item .product-item-details .product-item-name a {
  color: #484848;
  line-height: 1.8rem;
  font-weight: 400;
  font-size: 1.4rem;
}
.cms-home .section-wrapper.section-6 .block-products-list .product-item .product-item-details .price {
  color: #484848;
  font-weight: 400;
}
.cms-home .section-wrapper.section-7 {
  max-width: 1200px;
  justify-content: center;
}
.cms-home .section-wrapper.section-7 .item {
  max-width: 750px;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-7 .item {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.cms-home .section-wrapper.section-7 .item .content {
  margin-bottom: 2rem;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-7 .item .content {
    padding: 1rem;
  }
}
.cms-home .section-wrapper.section-7 .item .content .headline {
  font-size: 3rem;
  margin: 0;
  text-transform: uppercase;
  color: #484848;
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-weight: 400;
}
.cms-home .section-wrapper.section-7 .item .content .sub-headline {
  color: #484848;
  font-weight: 400;
  text-transform: unset;
  padding-bottom: 1rem;
}
.cms-home .section-wrapper.section-7 .item .content .button {
  color: #484848;
  padding: 1rem 4rem;
  border: 1px solid #484848;
  font-weight: 700;
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-7 .item .content .button {
    display: block;
    text-align: center;
  }
}
@media (max-width: 48em) {
  .cms-home .section-wrapper.section-7 .item:nth-child(1) {
    display: flex;
    flex-direction: column-reverse;
    margin-bottom: 2rem;
  }
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper {
  position: relative;
  width: 100%;
  max-width: 1170px;
  margin: 2rem auto;
  background: white;
  padding: 10px;
}
@media (min-width: 960px) {
  .cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper {
    padding-left: 54px;
    padding-top: 45px;
    padding-bottom: 54px;
    padding-right: 0px;
  }
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .newsletter-title {
  font-family: linotype-didot-headline, serif;
  font-style: normal;
  font-size: 4rem;
  font-weight: 400;
  margin-bottom: 0px;
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .newsletter-subtitle {
  font-size: 23px;
  font-weight: 500;
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .cta {
  display: block;
  font-size: 16px;
  padding: 7px 27px;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: #f1b6d3;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 28px;
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .newsletter-img {
  position: absolute;
  top: 9px;
  right: 61px;
  width: 257px;
  height: auto;
  display: none;
}
@media (min-width: 960px) {
  .cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .newsletter-img {
    display: block;
  }
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .content-wrapper {
  background-color: #f1b6d3;
  width: 100%;
  margin-top: 11px;
  padding-left: 16px;
  font-size: large;
}
.cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .content-wrapper .content-list {
  display: flex;
  flex-direction: column;
  padding: 12px;
  gap: 3px;
}
@media (min-width: 960px) {
  .cms-home .section-wrapper.section-newsletter.row .newsletter-wrapper .content-wrapper .content-list {
    max-width: 70%;
    min-height: 278px;
    line-height: 2;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.normal-price.extra {
  display: flex;
  align-items: center;
  padding: 1rem 0;
}
.normal-price.extra .normal-price-text {
  padding-right: 1rem;
  color: #cc1c10 !important;
}
.normal-price.extra .price {
  color: #cc1c10 !important;
}

.old-price {
  display: flex;
  align-items: center;
  border-top: solid 1px #dcdcdc;
  padding-top: 1rem;
}
.old-price .old-price-text {
  padding-right: 1rem;
}
.old-price .price {
  color: #696969 !important;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  text-decoration: line-through !important;
}

.catalog-category-view .cs-product-tile__price .price-box, .brands-index-index .cs-product-tile__price .price-box {
  display: block;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  flex-direction: column !important;
}
.catalog-category-view .cs-product-tile__price .price-box .omnibus-price, .brands-index-index .cs-product-tile__price .price-box .omnibus-price {
  color: #696969;
  order: 1;
  display: block !important;
  padding-bottom: 0;
  border-bottom: unset;
}

.omnibus-price {
  color: #696969;
  order: -1;
  display: block;
  padding-bottom: 1rem;
  border-bottom: solid 1px #dcdcdc;
}

.cs-product-tile__content .omnibus-price,
.cs-autocomplete__item .omnibus-price,
.slick-slider .omnibus-price {
  display: none;
}

.cs-product-tile__content .old-price,
.cs-autocomplete__item .old-price,
.slick-slider .old-price {
  border: none;
  padding-top: 0;
}
.cs-product-tile__content .old-price .old-price-text,
.cs-autocomplete__item .old-price .old-price-text,
.slick-slider .old-price .old-price-text {
  display: none;
}

.cs-product-tile__content .normal-price,
.cs-autocomplete__item .normal-price,
.slick-slider .normal-price {
  border: none;
  padding-bottom: 0;
}
.cs-product-tile__content .normal-price .normal-price-text,
.cs-autocomplete__item .normal-price .normal-price-text,
.slick-slider .normal-price .normal-price-text {
  display: none;
}

.cs-product-tile__content .normal-price.extra,
.cs-autocomplete__item .normal-price.extra,
.slick-slider .normal-price.extra {
  padding: 0;
}
.mp-reward-cart {
  display: none;
}

.mp-reward-points.mp-product {
  display: none;
}

.col {
  width: auto;
}

.account.customer-referral-index #maincontent,
.account.customer-rewards-index #maincontent,
.account.customer-rewards-transaction #maincontent {
  max-width: 1280px;
}

#maincontent .block.block-collapsible-nav,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav,
.block.block-collapsible-nav .account.customer-referral-index #maincontent .block.block-collapsible-nav {
  margin-top: 4rem;
  padding-right: 0;
}

.account.customer-referral-index #maincontent .block.block-collapsible-nav,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav {
  width: calc(100% / 4);
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
  float: left;
}

@media (max-width: 47.99em) {
  .account.customer-referral-index #maincontent .block.block-collapsible-nav,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav {
    width: 100%;
  }
}
.account.customer-referral-index #maincontent .block.block-collapsible-nav,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.account.customer-referral-index #maincontent .block.block-collapsible-nav .title.block-collapsible-nav-title,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav .title.block-collapsible-nav-title,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav .title.block-collapsible-nav-title {
  padding-bottom: 1rem;
  border-bottom: 1px solid #dcdcdc;
  padding-left: 2rem;
}

.account.customer-referral-index #maincontent .block.block-collapsible-nav .nav.items,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav .nav.items,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav .nav.items {
  padding-top: 2rem;
}

.account.customer-referral-index #maincontent .block.block-collapsible-nav .nav.item.current,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav .nav.item.current,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav .nav.item.current {
  border-left: 3px solid black;
}

.account.customer-referral-index #maincontent .block.block-collapsible-nav .nav.item,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav .nav.item,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav .nav.item {
  padding-left: 2rem;
  padding-right: 2rem;
}

.account.customer-referral-index #maincontent .block.block-collapsible-nav .nav.item a,
.account.customer-rewards-index #maincontent .block.block-collapsible-nav .nav.item a,
.account.customer-rewards-transaction #maincontent .block.block-collapsible-nav .nav.item a {
  color: #696969;
}

.account.customer-referral-index #maincontent .column.main,
.account.customer-rewards-index #maincontent .column.main,
.account.customer-rewards-transaction #maincontent .column.main {
  padding-left: 3.5rem;
  width: calc(100% - (100% / 4));
}

@media (max-width: 47.99em) {
  .account.customer-referral-index #maincontent .column.main,
.account.customer-rewards-index #maincontent .column.main,
.account.customer-rewards-transaction #maincontent .column.main {
    width: calc(100% - (100% / 3));
  }
}
.cs-select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 2.3em 0.75em 1em;
  color: #212121;
  border-radius: 0;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s;
}

.block-reward-dashboard {
  color: #333333;
}

.form.form-rewards-setting .legend span {
  font-size: 26px;
}

.fieldset .email-notification span {
  font-size: 26px;
}

input#notification-expire,
input#notification-update {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 20px;
  height: 20px;
  background-color: white;
  cursor: pointer;
  border-width: 2px;
  border-style: solid;
  border-color: #cccccc;
  -o-border-image: initial;
     border-image: initial;
  border-radius: 4px;
  transition: 0.3s;
}

input#notification-expire:checked,
input#notification-update:checked {
  background-color: #ffffff;
  border-color: #333333;
  background-size: 14px 14px;
  background-repeat: no-repeat;
  background-position: center;
}

.block-reward-dashboard .email-notification span {
  font-weight: 500;
}

.block-reward-dashboard .primary {
  text-align: center;
  margin-top: 15px;
}

.block-reward-dashboard .action.save.primary,
.box-content .action.primary button {
  background: #ffb3bb;
  border: none;
  border-radius: 8px;
  color: #ffffff;
  padding: 12px 40px;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);
}

.block-reward-dashboard .action.save.primary:hover,
.box-content .action.primary button:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 20px rgba(0, 0, 0, 0.15);
}

.block-reward-dashboard .action.save.primary:active,
.box-content .action.primary button:active {
  transform: translateY(1px);
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);
}

.url_and_code .copy {
  color: white;
  background: #ffb3bb;
  text-align: center;
  line-height: 30px;
  cursor: pointer;
  display: inline-block;
  width: 55px;
  height: 30px;
  text-transform: uppercase;
  position: inherit;
}

.mp_input {
  height: 30px;
  align-content: center;
}

input.mp-input {
  width: 80%;
  background-color: #f9f9f9;
  border: 2px solid #ccc;
  padding: 6px 3px;
  font-size: 13px;
  color: #333;
}

.invite-friend textarea {
  height: 127px;
  width: 100%;
  resize: none;
}

.mp-title {
  margin-top: 0;
}

.send-from {
  height: 23px;
  margin-top: 10px;
}

.action.primary.bt-send {
  text-align: center;
}

@media (max-width: 47.99em) {
  .account.customer-referral-index #maincontent .column.main,
.account.customer-rewards-index #maincontent .column.main,
.account.customer-rewards-transaction #maincontent .column.main {
    padding-left: 0;
  }
}
#send-by,
.invite-friend textarea {
  background-color: #f9f9f9;
  border: 2px solid #ccc;
  padding: 5px 15px;
  font-size: 16px;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
  width: 100%;
}

.invite-message textarea {
  background-color: #f9f9f9;
  border: 2px solid #ccc;
  padding: 5px 15px;
  font-size: 16px;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
  height: 200px;
  width: 100%;
  resize: none;
}

#send-by:hover,
.invite-friend textarea:hover,
.invite-message textarea:hover,
input.mp-input:hover {
  border-color: #888;
}

#send-by:focus,
.invite-friend textarea:focus,
.invite-message textarea:focus,
input.mp-input:focus {
  outline: none;
  box-shadow: none;
}

.invite-friend .comment {
  padding: 10px;
}

.item-balance .available {
  background: #6bc772;
}

.item-balance .earned {
  background: #ffb3bb;
}

.item-balance .paid {
  background: #dbc183;
}

#mp_reward_referral .box-content,
.table-wrapper.additional-addresses,
.table-wrapper.reviews,
.table-wrapper.transactions-recent {
  overflow-x: auto;
}

#mp_reward_referral .box-content::-webkit-scrollbar,
.table-wrapper.additional-addresses::-webkit-scrollbar,
.table-wrapper.orders-history::-webkit-scrollbar,
.table-wrapper.orders-recent::-webkit-scrollbar,
.table-wrapper.reviews::-webkit-scrollbar,
.table-wrapper.transactions-recent::-webkit-scrollbar {
  height: 8px !important;
}

#mp_reward_referral .box-content::-webkit-scrollbar-thumb,
.table-wrapper.additional-addresses::-webkit-scrollbar-thumb,
.table-wrapper.orders-history::-webkit-scrollbar-thumb,
.table-wrapper.orders-recent::-webkit-scrollbar-thumb,
.table-wrapper.reviews::-webkit-scrollbar-thumb,
.table-wrapper.transactions-recent::-webkit-scrollbar-thumb {
  background: #b6b6b6;
  border-radius: 10px;
}

#mp_reward_referral .box-content::-webkit-scrollbar-thumb:hover,
.table-wrapper.additional-addresses::-webkit-scrollbar-thumb:hover,
.table-wrapper.orders-history::-webkit-scrollbar-thumb:hover,
.table-wrapper.orders-recent::-webkit-scrollbar-thumb:hover,
.table-wrapper.reviews::-webkit-scrollbar-thumb:hover,
.table-wrapper.transactions-recent::-webkit-scrollbar-thumb:hover {
  background: #9a9a9a;
}

table#additional-addresses-table,
table#my-reviews-table,
table#rewards-transaction-table,
table#transactions-history {
  word-break: normal;
  margin-top: 30px;
  margin-bottom: 30px;
  width: 110%;
}

table#rewards-transaction-table thead,
table#transactions-history thead {
  border-bottom: 2px solid #dcdcdc;
}

.block-reward-dashboard .col,
.block-reward-dashboard-transaction .col,
.block.block-addresses-list .col,
.table-wrapper.reviews .col,
table#transactions-history .col {
  white-space: nowrap;
  padding-left: 14px;
  padding-right: 14px;
}

.block-reward-dashboard .field.choice,
.block-reward-dashboard-transaction .field.choice,
.block.block-addresses-list .field.choice,
.table-wrapper.reviews .field.choice,
table#transactions-history .field.choice {
  margin: 5px 0;
}

@media (min-width: 48em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 3);
  }
}
@media (min-width: 64em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 4);
  }
}
@media (min-width: 80em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 4);
  }
}
@media (min-width: 90em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 4);
  }
}
.reward-transactions-toolbar.toolbar.bottom .cs-pagination__content {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
}

.reward-transactions-toolbar.toolbar.bottom li.item.cs-pagination__item,
.reward-transactions-toolbar.toolbar.bottom li.item.current.cs-pagination__item.cs-pagination__item--current {
  display: inline-block;
  margin: 0;
}

.reward-transactions-toolbar.toolbar.bottom .item.cs-pagination__item a,
.reward-transactions-toolbar.toolbar.bottom span.cs-pagination__number.cs-pagination__number--current {
  width: 30px;
  height: 30px;
  border: 2px solid #8b7033;
  align-content: center;
  text-align: center;
  margin-left: 5px;
  margin-right: 5px;
  font-size: 20px;
  display: block;
}

.reward-transactions-toolbar.toolbar.bottom li.item.cs-pagination__item a,
.reward-transactions-toolbar.toolbar.bottom li.item.cs-pagination__item span,
.reward-transactions-toolbar.toolbar.bottom li.item.current.cs-pagination__item.cs-pagination__item--current a,
.reward-transactions-toolbar.toolbar.bottom li.item.current.cs-pagination__item.cs-pagination__item--current span {
  color: #8b7033;
}

.reward-transactions-toolbar.toolbar.bottom p.label.pages-label.cs-pagination__prefix-label {
  padding-right: 15px;
  margin-bottom: 0;
}

.reward-transactions-toolbar.toolbar.bottom .pages.cs-pagination {
  display: inline-block;
}

.reward-transactions-toolbar.toolbar.bottom .cs-toolbar__item.cs-toolbar__item--amount {
  display: inline-block;
}

.reward-transactions-toolbar.toolbar.bottom .cs-toolbar__item.cs-toolbar__item--amount p {
  margin-bottom: 0;
}

.reward-transactions-toolbar.toolbar.bottom .cs-toolbar__item.cs-toolbar__item--amount span.toolbar-number {
  padding: 0 2px;
}

.reward-transactions-toolbar.toolbar.bottom .cs-toolbar__item.cs-toolbar__item--limiter {
  display: inline-block;
}

.reward-transactions-toolbar.toolbar.bottom {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  align-items: center;
}

#my-orders-table th.col {
  word-break: normal;
}

table#my-orders-table {
  overflow-y: auto;
  width: 110%;
  max-width: none;
}

.block.refer-via-social .social-buttons {
  margin-top: 10px;
}

.block.refer-via-social .social-buttons a {
  color: #ffb3bb;
  font-size: 35px;
  padding: 0 10px;
}

.block.refer-via-social {
  margin-top: 25px;
  margin-bottom: 25px;
}

table.data.table {
  word-break: normal;
}

td.cs-cart-table__col.cs-cart-item__qty.col.qty {
  padding: 0 20px !important;
}

.table-checkout-shipping-method td.col.col-method {
  align-content: center;
  text-align: center;
}

@media (max-width: 1023px) {
  .table-wrapper.transactions-recent .table thead {
    display: none;
  }

  .table-wrapper.transactions-recent .table tbody td:before {
    padding-right: 10px;
    content: attr(data-th) ": ";
    display: inline-block;
    color: #212121;
    font-weight: 700;
    vertical-align: top;
  }

  .table-wrapper.transactions-recent .table tbody td {
    border: none;
    display: block;
    font-size: 1.4rem;
    padding: 0.2rem;
  }

  .table-wrapper.transactions-recent .table tbody td.col.comment,
table#transactions-history tbody td.col.comment {
    text-wrap: auto;
  }

  .table-wrapper.transactions-recent .table tbody tr {
    border-bottom: 1px solid #9c9c9c;
    padding-bottom: 10px;
    padding-top: 20px;
    display: block;
  }

  .reward-transactions-toolbar.toolbar.bottom .pages.cs-pagination {
    display: flex;
    justify-content: center;
    margin-top: 25px;
    margin-bottom: 40px;
  }

  .reward-transactions-toolbar.toolbar.bottom .cs-toolbar__item.cs-toolbar__item--amount {
    display: block;
  }

  .reward-transactions-toolbar.toolbar.bottom .cs-toolbar__item.cs-toolbar__item--limiter {
    display: block;
  }

  .reward-transactions-toolbar.toolbar.bottom {
    display: block;
    text-align: center;
    margin-top: -10px;
  }
}
.cms-warunki-dostaw .columns.column.main {
  padding: 4rem 2rem 0;
}

.bf-text {
  font-size: 9rem;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.checkout-index-index .mp_reward_messages {
  max-width: 93rem;
}
.checkout-index-index .mp_reward_messages .messages {
  padding-bottom: 90px;
}

.mp_reward_messages.messages {
  padding-bottom: 90px !important;
}
@media (max-width: 48em) {
  .mp_reward_messages.messages {
    padding-bottom: 0px !important;
  }
}

.payment-method-przelewy24__method--promoted {
  display: none;
}

.payment-method.payment-method-przelewy24._active {
  max-width: 470px;
}
.cms-black-friday-html .columns, .cms-newsletter-landing-page-html .columns {
  max-width: 980px;
}
.cms-black-friday-html .bf-text, .cms-newsletter-landing-page-html .bf-text {
  font-size: 5.5rem;
  font-weight: 900;
  line-height: normal;
}
.cms-black-friday-html .bf-row, .cms-newsletter-landing-page-html .bf-row {
  margin: 0 auto;
}
/* plumrocket rma extension custom styles */
.sales-guest-view table#my-orders-table,
.sales-guest-invoice table#my-orders-table,
.sales-guest-shipment table#my-orders-table {
  width: 100%;
}
.sales-guest-view .page-title-wrapper,
.sales-guest-invoice .page-title-wrapper,
.sales-guest-shipment .page-title-wrapper {
  border: none;
  margin: 0;
  padding: 0;
}
.sales-guest-view .page-title-wrapper .order-status,
.sales-guest-invoice .page-title-wrapper .order-status,
.sales-guest-shipment .page-title-wrapper .order-status {
  margin-top: 6px;
  padding: 5px 10px;
  border: 2px solid #cccccc;
  border-radius: 3px;
  display: inline-block;
  margin: 3px 0 0;
  padding: 2px 10px;
  text-transform: uppercase;
  vertical-align: top;
}
.sales-guest-view h1.page-title,
.sales-guest-invoice h1.page-title,
.sales-guest-shipment h1.page-title {
  margin-right: 25px;
  display: inline-block;
  font-size: 40px;
  margin-bottom: 40px;
  font-weight: 300;
  line-height: 1.1;
}
.sales-guest-view .actions-toolbar.order-actions-toolbar,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar {
  float: none;
  text-align: left;
  margin-bottom: 25px;
}
.sales-guest-view .actions-toolbar.order-actions-toolbar .actions,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar .actions,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar .actions {
  text-align: left;
  padding: 3px 0px;
}
.sales-guest-view .actions-toolbar.order-actions-toolbar .actions a,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar .actions a,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar .actions a {
  margin-right: 30px;
  background: #efefef;
  padding: 3px 8px;
}
.sales-guest-view .actions-toolbar.order-actions-toolbar .actions a.returns,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar .actions a.returns,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar .actions a.returns {
  background: #000000;
  color: #fff;
}
.sales-guest-view .actions-toolbar.order-actions-toolbar .action,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar .action,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar .action {
  margin-right: 30px;
}
.sales-guest-view .actions-toolbar.order-actions-toolbar .action.print,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar .action.print,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar .action.print {
  display: block;
  float: right;
  text-decoration: none;
}
.sales-guest-view .order-details-items.ordered,
.sales-guest-invoice .order-details-items.ordered,
.sales-guest-shipment .order-details-items.ordered {
  padding: 25px;
  border: 1px solid #cccccc;
  margin-bottom: 40px;
}
.sales-guest-view .table tfoot,
.sales-guest-invoice .table tfoot,
.sales-guest-shipment .table tfoot {
  background: #f5f5f5;
}
.sales-guest-view .table tfoot tr > th,
.sales-guest-view .table tfoot tr > td,
.sales-guest-invoice .table tfoot tr > th,
.sales-guest-invoice .table tfoot tr > td,
.sales-guest-shipment .table tfoot tr > th,
.sales-guest-shipment .table tfoot tr > td {
  text-align: right;
}
.sales-guest-view .col.qty .items-qty,
.sales-guest-invoice .col.qty .items-qty,
.sales-guest-shipment .col.qty .items-qty {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0;
}
.sales-guest-view .block.block-order-details-view,
.sales-guest-invoice .block.block-order-details-view,
.sales-guest-shipment .block.block-order-details-view {
  margin-bottom: 50px;
}
.sales-guest-view .block.block-order-details-view .block-title,
.sales-guest-invoice .block.block-order-details-view .block-title,
.sales-guest-shipment .block.block-order-details-view .block-title {
  border-bottom: 1px solid #c6c6c6;
  margin-bottom: 25px;
  padding-bottom: 10px;
}
.sales-guest-view .block.block-order-details-view .block-title strong,
.sales-guest-invoice .block.block-order-details-view .block-title strong,
.sales-guest-shipment .block.block-order-details-view .block-title strong {
  font-size: 2.2rem;
  font-weight: 300;
}
.sales-guest-view .block.block-order-details-view .block-content > .box,
.sales-guest-invoice .block.block-order-details-view .block-content > .box,
.sales-guest-shipment .block.block-order-details-view .block-content > .box {
  clear: none;
  float: left;
  width: 25%;
  margin-bottom: 30px;
}
.sales-guest-view .block.block-order-details-view .block-title,
.sales-guest-invoice .block.block-order-details-view .block-title,
.sales-guest-shipment .block.block-order-details-view .block-title {
  border-bottom: 1px solid #c6c6c6;
  margin-bottom: 25px;
  padding-bottom: 10px;
}
.sales-guest-view .block.block-order-details-view .block-title span,
.sales-guest-invoice .block.block-order-details-view .block-title span,
.sales-guest-shipment .block.block-order-details-view .block-title span {
  font-size: 2.2rem;
  font-weight: 300;
}
.sales-guest-view .column.main .order-details-items .table-wrapper .data.table > thead > tr > th,
.sales-guest-invoice .column.main .order-details-items .table-wrapper .data.table > thead > tr > th,
.sales-guest-shipment .column.main .order-details-items .table-wrapper .data.table > thead > tr > th {
  border-bottom: 1px solid #cccccc;
}
.sales-guest-view .order-items.table-wrapper .col.price,
.sales-guest-invoice .order-items.table-wrapper .col.price,
.sales-guest-shipment .order-items.table-wrapper .col.price {
  text-align: right;
}
.sales-guest-view .order-items.table-wrapper .col.qty,
.sales-guest-invoice .order-items.table-wrapper .col.qty,
.sales-guest-shipment .order-items.table-wrapper .col.qty {
  text-align: right;
}
.sales-guest-view .order-items.table-wrapper .col.subtotal,
.sales-guest-invoice .order-items.table-wrapper .col.subtotal,
.sales-guest-shipment .order-items.table-wrapper .col.subtotal {
  text-align: right;
}

.account.prrma-returns-create .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_address .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma-returns-view .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_guest .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_history .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma-returns-order_history .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_print .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_success .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_view .cs-dashboard__columns > .cs-dashboard__main {
  width: 100%;
}

.sales-guest-form .form.form-orders-search {
  max-width: 968px;
  margin: 0 auto;
}
.sales-guest-form .form.form-orders-search .actions-toolbar {
  margin: 2rem 0;
  display: flex;
  flex-direction: row-reverse;
}
.sales-guest-form .form.form-orders-search .actions-toolbar .primary > .submit {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  padding: 0.75em 1em;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-navigation {
  display: none;
}
@media (hover: hover) and (pointer: fine) {
  .cs-slider-navigation {
    position: absolute;
    z-index: 11;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.4rem;
    height: 5.2rem;
    border: 0;
    border-radius: 0px;
    background: #fff;
    box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
    padding: 0;
    color: #000000;
    cursor: pointer;
    transition: all 0.3s;
  }
  .cs-slider-navigation--prev {
    left: 1.5rem;
  }
  .cs-slider-navigation--next {
    right: 1.5rem;
  }
  .cs-slider-navigation[disabled] {
    opacity: 0.25;
    cursor: not-allowed;
  }
  .cs-slider-navigation[disabled] svg {
    filter: grayscale(1);
  }
  .cs-slider-navigation:not([disabled]):hover {
    box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25);
  }
  .cs-slider-navigation__icon {
    width: 1.4rem;
    height: 2.7rem;
    fill: currentColor;
  }
}

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  min-height: 3rem;
}
.cs-slider-pagination--fraction {
  gap: 0;
  white-space: pre-wrap;
  color: inherit;
  font-weight: 600;
}
.cs-slider-pagination--fraction span {
  color: #000;
}
.cs-slider-pagination__bullet {
  position: relative;
  border-radius: 2px;
  background: #f4f4f4;
  border: 0;
  inline-size: 2.2rem;
  block-size: 0.9rem;
  transition: all 0.15s;
  overflow: hidden;
  text-indent: -99rem;
}
.cs-slider-pagination__bullet.current {
  background-color: #000;
}
.cs-slider-pagination__bullet:only-child {
  display: none;
}

/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * This components is sort of unique because it's items-per-row configuration is only available for tablet+
 * This map adds possibility to 'force' provied columns configuration up to laptop resolutions.
 */
.cs-image-teaser {
  --slogan-font-size: 3.8rem;
  --description-font-size: 1.5rem;
  --gap: 0.8rem;
  /*
   * Keep CTA separated from text-content for all scenarios
   * "!important" added due to fallback from --scheme-* with button() mixin that resets margins
   */
  /**
   * Contrast Optimizers
   */
}
.cs-image-teaser:not(.cs-container--use-whole-width) .cs-image-teaser.cs-image-teaser--container-width .cs-image-teaser__slides-wrapper {
  max-width: 180rem;
  margin-left: auto;
  margin-right: auto;
}
.cs-image-teaser__slides {
  --columns: 1;
  display: grid;
  gap: var(--gap);
  grid-template-columns: repeat(var(--columns), minmax(0, 1fr));
  margin: 0;
  padding: 0;
}
.cs-image-teaser--items-in-row-mobile-2 .cs-image-teaser__slides {
  --columns: 2;
}
.cs-image-teaser__slide {
  display: inline-block;
  margin: 0;
}
.cs-image-teaser__link {
  outline-offset: calc(var(--gap) / 2 + 2);
}
.cs-image-teaser__link:focus {
  outline-offset: 0.4rem;
}
@media (prefers-reduced-motion: no-preference) {
  .cs-image-teaser__link {
    transition: outline-offset 0.25s ease;
  }
}
.cs-image-teaser__picture {
  display: block;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
  width: 100%;
  height: auto;
  /* stylelint-disable -- stylelint doesn't know this media query yet. */
  /* stylelint-enable */
}
@media (prefers-reduced-data: reduce) {
  .cs-image-teaser__picture {
    display: none;
  }
}
.cs-image-teaser__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  background-color: #f4f4f4;
}
@media (min-width: 48em) {
  .cs-image-teaser {
    --gap: 0.8rem;
  }
  .cs-image-teaser--items-in-row-2 .cs-image-teaser__slides {
    --columns: 2;
  }
  .cs-image-teaser--items-in-row-3 .cs-image-teaser__slides {
    --columns: 3;
  }
  .cs-image-teaser--items-in-row-4 .cs-image-teaser__slides {
    --columns: 4;
  }
  .cs-image-teaser--items-in-row-5 .cs-image-teaser__slides {
    --columns: 5;
  }
  .cs-image-teaser--items-in-row-6 .cs-image-teaser__slides {
    --columns: 6;
  }
  .cs-image-teaser--items-in-row-7 .cs-image-teaser__slides {
    --columns: 7;
  }
  .cs-image-teaser--items-in-row-8 .cs-image-teaser__slides {
    --columns: 8;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--items-in-row-4:not(.cs-image-teaser--icon) .cs-image-teaser__slides {
    --columns: 2;
  }
}
.cs-image-teaser--slider {
  --gap: 0.8rem;
  --base-size: calc(100% - 0px);
  --size: var(--base-size);
  /**
   * class-based columns config relates to classnames, like '--items-in-row-4'
   * which are added to elements, depending on the CC Components configuration.
   */
  /*  container padding fix  */
}
@media (min-width: 114.375em) {
  .cs-image-teaser--slider.cs-image-teaser--container-width {
    --base-size: calc(180rem - 0px);
  }
  .cs-image-teaser--slider.cs-image-teaser--use-whole-screen:not(.cs-image-teaser--full-width-slider) {
    --base-size: 100%;
    max-width: 100%;
  }
  .cs-image-teaser--slider.cs-image-teaser--use-whole-screen:not(.cs-image-teaser--full-width-slider) .cs-image-teaser__slides {
    scroll-snap-type: x proximity;
    padding-left: calc((100% - 180rem) / 2);
    padding-right: calc((100% - 180rem) / 2);
    scroll-padding-left: calc((100% - 180rem) / 2);
    scroll-padding-right: calc((100% - 180rem) / 2);
    scroll-margin-left: calc((100vw - 180rem) / 2);
    scroll-margin-right: calc((100vw - 180rem) / 2);
  }
}
@media (hover: hover) and (pointer: fine) and (min-width: 114.375em) {
  .cs-image-teaser--slider.cs-image-teaser--container-width {
    --base-size: 180rem;
  }
}
@media (min-width: 48em) {
  .cs-image-teaser--slider {
    --gap: 0.8rem;
  }
}
@media (min-width: 48em) {
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-2 {
    --size: calc(
        var(--base-size) /
            2 -
            ((1 * var(--gap)) / 2)
    );
  }
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-3 {
    --size: calc(
        var(--base-size) /
            3 -
            ((2 * var(--gap)) / 3)
    );
  }
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-4 {
    --size: calc(
        var(--base-size) /
            4 -
            ((3 * var(--gap)) / 4)
    );
  }
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-5 {
    --size: calc(
        var(--base-size) /
            5 -
            ((4 * var(--gap)) / 5)
    );
  }
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-6 {
    --size: calc(
        var(--base-size) /
            6 -
            ((5 * var(--gap)) / 6)
    );
  }
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-7 {
    --size: calc(
        var(--base-size) /
            7 -
            ((6 * var(--gap)) / 7)
    );
  }
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-8 {
    --size: calc(
        var(--base-size) /
            8 -
            ((7 * var(--gap)) / 8)
    );
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-4:not(.cs-image-teaser--icon) {
    --size: calc(var(--base-size) / 2 - (1 * var(--gap) / 2));
  }
}
@media (max-width: 114.3125em) {
  .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
    scroll-padding-right: 1.5rem;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .cs-image-teaser--slider .cs-image-teaser__slides {
    scroll-behavior: smooth;
  }
}
.cs-image-teaser--slider .cs-image-teaser__slides-wrapper {
  position: relative;
}
.cs-image-teaser--slider .cs-image-teaser__slides {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex: 0 0 100%;
  gap: 0;
  flex-wrap: nowrap;
  padding: var(--gap) 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
@supports (scroll-behavior: smooth) {
  .cs-image-teaser--slider .cs-image-teaser__slides {
    scroll-snap-type: x mandatory;
  }
}
@media (min-width: 48em) {
  .cs-image-teaser--slider .cs-image-teaser__slides {
    overflow: -moz-scrollbars-none;
    scrollbar-width: none;
  }
  .cs-image-teaser--slider .cs-image-teaser__slides::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
  }
  .cs-image-teaser--slider .cs-image-teaser__slides::-webkit-scrollbar-thumb {
    background: transparent;
    width: 0;
    height: 0;
  }
}
.cs-image-teaser--slider .cs-image-teaser__slide {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-block;
  flex: 0 0 var(--size);
  margin-right: var(--gap);
  scroll-snap-align: start;
  min-width: 0;
}
.cs-image-teaser--slider .cs-image-teaser__slide:last-of-type {
  margin-right: 0;
}
.cs-image-teaser--slider .cs-image-teaser__image {
  display: block;
}
@media (max-width: 47.99em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) {
    --gap: 0.8rem;
    --base-size: calc(100% - 0px);
    --size: var(--base-size);
  }
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider).cs-image-teaser--container-width {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider).cs-image-teaser--container-width .cs-image-teaser__slides {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
    scroll-padding-right: 1.5rem;
  }
}
@media (max-width: 47.99em) and (prefers-reduced-motion: no-preference) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
    scroll-behavior: smooth;
  }
}
@media (max-width: 47.99em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides-wrapper {
    position: relative;
  }
}
@media (max-width: 47.99em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex: 0 0 100%;
    gap: 0;
    flex-wrap: nowrap;
    padding: var(--gap) 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  @supports (scroll-behavior: smooth) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
      scroll-snap-type: x mandatory;
    }
  }
}
@media (max-width: 47.99em) and (min-width: 48em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
    overflow: -moz-scrollbars-none;
    scrollbar-width: none;
  }
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
  }
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides::-webkit-scrollbar-thumb {
    background: transparent;
    width: 0;
    height: 0;
  }
}
@media (max-width: 47.99em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slide {
    margin: 0;
    padding: 0;
    list-style: none;
    display: inline-block;
    flex: 0 0 var(--size);
    margin-right: var(--gap);
    scroll-snap-align: start;
    min-width: 0;
  }
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slide:last-of-type {
    margin-right: 0;
  }
}
@media (max-width: 47.99em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__image {
    display: block;
  }
}
@media (min-width: 48em) {
  .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__nav,
.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__pagination {
    display: none;
  }
}
.cs-image-teaser__slide--scheme-light {
  --scheme-color: #fff;
  --scheme-background: #212121;
}
.cs-image-teaser__slide--scheme-dark {
  --scheme-color: #212121;
  --scheme-background: #fff;
}
.cs-image-teaser__slide:not(.cs-image-teaser__slide--image-uploaded) {
  background: var(--scheme-background);
}
@media (max-width: 47.99em) {
  .cs-image-teaser__slides--mobile_text-image .cs-image-teaser__slide--image-uploaded {
    order: 1;
  }
  .cs-image-teaser__slides--mobile_image-text .cs-image-teaser__slide--image-uploaded {
    order: -1;
  }
}
@media (max-width: 47.99em) {
  .cs-image-teaser--as-list-mobile .cs-image-teaser__slides {
    flex-wrap: wrap;
  }
  .cs-image-teaser--as-list-mobile .cs-image-teaser__slide {
    margin: 0 0 0.8rem;
  }
  .cs-image-teaser--as-list-mobile .cs-image-teaser__pagination,
.cs-image-teaser--as-list-mobile .cs-image-teaser__nav {
    display: none;
  }
}
.cs-image-teaser__link {
  display: block;
  height: 100%;
}
.cs-image-teaser__link, .cs-image-teaser__link:hover, .cs-image-teaser__link:visited, .cs-image-teaser__link:active, .cs-image-teaser__link:focus {
  text-decoration: none;
}
.cs-image-teaser__figure {
  height: 100%;
  position: relative;
}
.cs-image-teaser__content-wrapper {
  color: var(--scheme-color);
}
.cs-image-teaser__content-wrapper--under {
  position: relative;
  z-index: 1;
  margin: -2rem 2rem 0;
  padding: 2rem;
  background-color: var(--scheme-background);
  text-align: center;
}
.cs-image-teaser__content-wrapper--over {
  width: 100%;
  height: 100%;
  display: flex;
  padding: 2rem;
  overflow: hidden;
  align-items: flex-start;
}
.cs-image-teaser__picture + .cs-image-teaser__content-wrapper--over, .cs-image-teaser--teaser-and-text .cs-image-teaser__slide--image-uploaded .cs-image-teaser__content-wrapper--over {
  position: absolute;
  top: 0;
  left: 0;
}
.cs-image-teaser__content-wrapper--content-align-x-2 {
  justify-content: center;
  text-align: center;
}
.cs-image-teaser__content-wrapper--content-align-x-3 {
  justify-content: flex-end;
  text-align: right;
}
.cs-image-teaser__content-wrapper--content-align-y-2 {
  align-items: center;
}
.cs-image-teaser__content-wrapper--content-align-y-3 {
  align-items: flex-end;
}
.cs-image-teaser__content {
  position: relative;
}
.cs-image-teaser__text-content + .cs-image-teaser__cta {
  margin-top: 1em !important;
}
.cs-image-teaser__slogan {
  margin: 0;
  line-height: 1.1;
  font-size: var(--slogan-font-size);
  font-weight: 900;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: auto;
          hyphens: auto;
}
.cs-image-teaser__description {
  margin: 1em 0 0;
  line-height: 1.1;
  font-size: var(--description-font-size);
}
.cs-image-teaser__cta {
  display: none;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active {
  background-color: #000000 !important;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:before, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:after {
  width: calc(100% + 2px);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:visited * {
  color: #fff;
  fill: #fff;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:not([disabled]), .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus:not([disabled]), .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:not([disabled]) *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus:not([disabled]) *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::before, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::after {
  content: none;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited * {
  color: #000000;
  fill: #000000;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:not([disabled]), .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus:not([disabled]), .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:not([disabled]) *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus:not([disabled]) *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}
@media (min-width: 30em) {
  .cs-image-teaser__cta {
    display: inline-flex;
    z-index: 1;
    margin: 1.2em 0 0;
    align-items: center;
    font-size: 1.2rem;
  }
  .cs-image-teaser__cta-icon {
    width: 1.2rem;
    height: 1.4rem;
  }
}
.cs-image-teaser__overlay, .cs-image-teaser__gradient {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__overlay, .cs-image-teaser__slide--scheme-light .cs-image-teaser__optimizer-container {
  background-color: #212121;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__overlay, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__optimizer-container {
  background-color: #fff;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-1 {
  background: linear-gradient(135deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-1 {
  background: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-2 {
  background: linear-gradient(90deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-2 {
  background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-3 {
  background: linear-gradient(45deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-3 {
  background: linear-gradient(45deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-1 {
  background: linear-gradient(180deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-1 {
  background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-2 {
  background: linear-gradient(90deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-2 {
  background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-3 {
  background: linear-gradient(0deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-3 {
  background: linear-gradient(0deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-1 {
  background: linear-gradient(-135deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-1 {
  background: linear-gradient(-135deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-2 {
  background: linear-gradient(-90deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-2 {
  background: linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-3 {
  background: linear-gradient(-45deg, #212121 0%, rgba(33, 33, 33, 0) 85%);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-3 {
  background: linear-gradient(-45deg, #fff 0%, rgba(255, 255, 255, 0) 85%);
}
.cs-image-teaser__image--mirror {
  transform: scaleX(-1);
}
.cs-image-teaser__content--container {
  position: relative;
  z-index: 1;
  padding: 2em;
}
.cs-image-teaser__optimizer-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-0 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-5 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.05);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-10 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.1);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-15 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.15);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-20 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.2);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-25 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.25);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-30 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.3);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-35 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.35);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-40 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.4);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-45 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.45);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-50 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.5);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-55 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.55);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-60 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.6);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-65 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.65);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-70 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.7);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-75 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.75);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-80 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.8);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-85 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.85);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-90 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.9);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-95 {
  text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.95);
}
.cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-100 {
  text-shadow: 0 0 2.5rem white;
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-0 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-5 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.05);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-10 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.1);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-15 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.15);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-20 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.2);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-25 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.25);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-30 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.3);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-35 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.35);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-40 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.4);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-45 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.45);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-50 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.5);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-55 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.55);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-60 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.6);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-65 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.65);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-70 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.7);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-75 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.75);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-80 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.8);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-85 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.85);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-90 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.9);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-95 {
  text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.95);
}
.cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-100 {
  text-shadow: 0 0 2.5rem #212121;
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --gap: 0.8rem;
    --base-size: calc(100% - 0px);
    --size: var(--base-size);
  }
  .cs-image-teaser--icon.cs-image-teaser--container-width {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
  .cs-image-teaser--icon.cs-image-teaser--container-width .cs-image-teaser__slides {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
    scroll-padding-right: 1.5rem;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) and (prefers-reduced-motion: no-preference) {
  .cs-image-teaser--icon .cs-image-teaser__slides {
    scroll-behavior: smooth;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon .cs-image-teaser__slides-wrapper {
    position: relative;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon .cs-image-teaser__slides {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex: 0 0 100%;
    gap: 0;
    flex-wrap: nowrap;
    padding: var(--gap) 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  @supports (scroll-behavior: smooth) {
    .cs-image-teaser--icon .cs-image-teaser__slides {
      scroll-snap-type: x mandatory;
    }
  }
}
@media (min-width: 48em) and (max-width: 63.99em) and (min-width: 48em) {
  .cs-image-teaser--icon .cs-image-teaser__slides {
    overflow: -moz-scrollbars-none;
    scrollbar-width: none;
  }
  .cs-image-teaser--icon .cs-image-teaser__slides::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
  }
  .cs-image-teaser--icon .cs-image-teaser__slides::-webkit-scrollbar-thumb {
    background: transparent;
    width: 0;
    height: 0;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon .cs-image-teaser__slide {
    margin: 0;
    padding: 0;
    list-style: none;
    display: inline-block;
    flex: 0 0 var(--size);
    margin-right: var(--gap);
    scroll-snap-align: start;
    min-width: 0;
  }
  .cs-image-teaser--icon .cs-image-teaser__slide:last-of-type {
    margin-right: 0;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon .cs-image-teaser__image {
    display: block;
  }
}
@media (min-width: 0px) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    ) !important;
  }
}
@media (min-width: 23.125em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    ) !important;
  }
}
@media (min-width: 30em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
        var(--base-size) / 3 - ((
                        2 * var(--gap)
                    ) / 3)
    ) !important;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
        var(--base-size) / 5 - ((
                        4 * var(--gap)
                    ) / 5)
    ) !important;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) and (hover: hover) and (pointer: fine) {
  .cs-image-teaser--icon.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__nav {
    display: block;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__pagination {
    display: flex;
  }
}
.cs-image-teaser--icon .cs-image-teaser__slogan {
  --slogan-font-size: 1.6rem;
}
.cs-image-teaser--icon .cs-image-teaser__description {
  margin-top: 0.5em;
}
.cs-image-teaser--icon .cs-image-teaser__cta {
  display: none;
}
.cs-image-teaser--icon .cs-image-teaser__content-wrapper--under {
  margin-top: 0;
  padding: 1rem;
}
.cs-image-teaser--icon .cs-image-teaser__content-wrapper--cta-only {
  display: none;
}
@media (min-width: 48em) {
  .cs-image-teaser--mosaic .cs-image-teaser__slides--mosaic-scenario-1 {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
  .cs-image-teaser--mosaic .cs-image-teaser__slides--mosaic-scenario-2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  }
}
@media (max-width: 47.99em) {
  .cs-image-teaser--teaser-and-text .cs-image-teaser__slides {
    display: flex;
    flex-wrap: wrap;
  }
  .cs-image-teaser--teaser-and-text .cs-image-teaser__slide {
    flex: 0 0 100%;
  }
}
.cs-image-teaser--instagram-feed .cs-image-teaser__picture {
  height: 100%;
}
.cs-image-teaser--instagram-feed .cs-image-teaser__image {
  -o-object-fit: contain;
     object-fit: contain;
  background-color: #f4f4f4;
}

.cs-container--image-teaser {
  margin: 0 0 3rem;
}
@media (min-width: 48em) {
  .cs-container--image-teaser {
    margin: 0 0 4rem;
  }
}
.cs-container--image-teaser--skip-spacing {
  margin: 0;
}

.cs-container--grid-teaser {
  margin: 0;
}

.cs-container--image-teaser-window-width {
  padding-left: 0;
  padding-right: 0;
}
.cs-container--image-teaser-window-width .cs-container__inner {
  max-width: 100%;
}

.cs-container--image-teaser-slider {
  padding-left: 0;
  padding-right: 0;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * It is intended, to not use the same config pattern (js/conlumnsConfig) as for other slider-based componets,
 * because Products Carousels should have the same config as product grid for consistency.
 * If custom columns config is needed, redefine it.
 */
.cs-products-carousel {
  margin: 0 0 3rem;
  --gap: 0.8rem;
  --base-size: calc(100% - 0px);
  --size: var(--base-size);
  /**
   * class-based columns config relates to classnames, like '--items-in-row-4'
   * which are added to elements, depending on the CC Components configuration.
   */
  --size: calc(
      var(--base-size) /
          1 -
          0 *
          var(--gap) /
          1
  );
  /*  container padding fix  */
}
@media (min-width: 48em) {
  .cs-products-carousel {
    margin: 0 0 4rem;
  }
}
.cs-products-carousel--skip-spacing {
  margin: 0;
}
@media (min-width: 114.375em) {
  .cs-products-carousel.cs-products-carousel--container-width {
    --base-size: calc(180rem - 0px);
  }
  .cs-products-carousel.cs-products-carousel--use-whole-screen:not(.cs-products-carousel--full-width-slider) {
    --base-size: 100%;
    max-width: 100%;
  }
  .cs-products-carousel.cs-products-carousel--use-whole-screen:not(.cs-products-carousel--full-width-slider) .cs-products-carousel__slides {
    scroll-snap-type: x proximity;
    padding-left: calc((100% - 180rem) / 2);
    padding-right: calc((100% - 180rem) / 2);
    scroll-padding-left: calc((100% - 180rem) / 2);
    scroll-padding-right: calc((100% - 180rem) / 2);
    scroll-margin-left: calc((100vw - 180rem) / 2);
    scroll-margin-right: calc((100vw - 180rem) / 2);
  }
}
@media (hover: hover) and (pointer: fine) and (min-width: 114.375em) {
  .cs-products-carousel.cs-products-carousel--container-width {
    --base-size: 180rem;
  }
}
@media (min-width: 48em) {
  .cs-products-carousel {
    --gap: 0.8rem;
  }
}
@media (min-width: 23.125em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 1 - ((
                        0 * var(--gap)
                    ) / 1)
    );
  }
}
@media (min-width: 30em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    );
  }
}
@media (min-width: 48em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    );
  }
}
@media (min-width: 64em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 2 - ((
                        1 * var(--gap)
                    ) / 2)
    );
  }
}
@media (min-width: 80em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 3 - ((
                        2 * var(--gap)
                    ) / 3)
    );
  }
}
@media (min-width: 90em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 3 - ((
                        2 * var(--gap)
                    ) / 3)
    );
  }
}
@media (min-width: 120em) {
  .cs-products-carousel {
    --size: calc(
        var(--base-size) / 4 - ((
                        3 * var(--gap)
                    ) / 4)
    );
  }
}
@media (max-width: 114.3125em) {
  .cs-products-carousel.cs-products-carousel--container-width .cs-products-carousel__slides {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
    scroll-padding-right: 1.5rem;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .cs-products-carousel .cs-products-carousel__slides {
    scroll-behavior: smooth;
  }
}
.cs-products-carousel .cs-products-carousel__slides-wrapper {
  position: relative;
}
.cs-products-carousel .cs-products-carousel__slides {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex: 0 0 100%;
  gap: 0;
  flex-wrap: nowrap;
  padding: var(--gap) 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
@supports (scroll-behavior: smooth) {
  .cs-products-carousel .cs-products-carousel__slides {
    scroll-snap-type: x mandatory;
  }
}
@media (min-width: 48em) {
  .cs-products-carousel .cs-products-carousel__slides {
    overflow: -moz-scrollbars-none;
    scrollbar-width: none;
  }
  .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
  }
  .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar-thumb {
    background: transparent;
    width: 0;
    height: 0;
  }
}
.cs-products-carousel .cs-products-carousel__slide {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-block;
  flex: 0 0 var(--size);
  margin-right: var(--gap);
  scroll-snap-align: start;
  min-width: 0;
}
.cs-products-carousel .cs-products-carousel__slide:last-of-type {
  margin-right: 0;
}
.cs-products-carousel .cs-products-carousel__image {
  display: block;
}
.cs-products-carousel__wrapper {
  position: relative;
  z-index: 2;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Gap between columns (all CSS units allowed) [Example: 1.5rem]
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap
 */
/**
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule
 */
.cs-paragraph {
  -moz-column-gap: 6rem;
       column-gap: 6rem;
  -moz-column-rule: 1px solid #dcdcdc;
       column-rule: 1px solid #dcdcdc;
  margin: 0 0 3rem;
}
@media (min-width: 48em) {
  .cs-paragraph {
    margin: 0 0 4rem;
  }
}
.cs-paragraph--skip-spacing {
  margin: 0;
}
.cs-paragraph img {
  height: auto;
}
@media (min-width: 48em) {
  .cs-paragraph--cols-2, .cs-paragraph--cols-3, .cs-paragraph--cols-4 {
    -moz-column-count: 2;
         column-count: 2;
  }
  .cs-paragraph--cols-2 li, .cs-paragraph--cols-3 li, .cs-paragraph--cols-4 li {
    width: 100%;
  }
  .cs-paragraph--cols-2 img, .cs-paragraph--cols-3 img, .cs-paragraph--cols-4 img {
    display: block;
    max-width: 100%;
  }
}
@media (min-width: 64em) {
  .cs-paragraph--cols-3, .cs-paragraph--cols-4 {
    -moz-column-count: 3;
         column-count: 3;
  }
}
@media (min-width: 80em) {
  .cs-paragraph--cols-4 {
    -moz-column-count: 4;
         column-count: 4;
  }
}
.cs-paragraph--mode-optimal {
  max-width: 40em;
  margin-left: auto;
  margin-right: auto;
  -moz-column-count: initial;
       column-count: initial;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-separator {
  position: relative;
  clear: both;
  border: none;
  border-top: 1px solid #dcdcdc;
  background: transparent;
  margin: 0 0 3rem;
}
@media (min-width: 48em) {
  .cs-separator {
    margin: 0 0 4rem;
  }
}
.cs-separator--skip-spacing {
  margin: 0;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.ui-datepicker {
  display: none;
  z-index: 999999 !important;
  border: none;
  border-radius: 0px;
  padding: 0;
  width: auto;
  min-width: 25rem;
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
  background: #f4f4f4;
}

.ui-datepicker-header {
  position: relative;
  background: #000;
  padding: 1.2rem 2rem;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}

.ui-datepicker-prev,
.ui-datepicker-next {
  position: absolute;
  top: 2rem;
  width: 1.8em;
  height: 1.8em;
  cursor: pointer;
}
.ui-datepicker-prev span,
.ui-datepicker-next span {
  display: block;
  position: absolute;
  left: 50%;
  top: 0.2rem;
  font-size: 0px;
  width: 0;
  height: 0;
}

.ui-datepicker-prev {
  left: 1.5rem;
}
.ui-datepicker-prev span {
  border-width: 0;
  position: relative;
}
.ui-datepicker-prev span:before, .ui-datepicker-prev span:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 2rem;
  width: 0;
  height: 0;
}
.ui-datepicker-prev span:before {
  left: -1.2rem;
  border-top: 0.8rem solid transparent;
  border-bottom: 0.8rem solid transparent;
  border-right: 0.8rem solid #000000;
  margin-top: -0.8rem;
}
.ui-datepicker-prev span:after {
  left: -1rem;
  border-top: 0.6rem solid transparent;
  border-bottom: 0.6rem solid transparent;
  border-right: 0.6rem solid #000;
  margin-top: -0.6rem;
}

.ui-datepicker-next {
  right: 1.5rem;
}
.ui-datepicker-next span {
  border-width: 0;
  position: relative;
}
.ui-datepicker-next span:before, .ui-datepicker-next span:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 0;
  height: 0;
}
.ui-datepicker-next span:before {
  right: -1.2rem;
  border-top: 0.8rem solid transparent;
  border-bottom: 0.8rem solid transparent;
  border-left: 0.8rem solid #000000;
  margin-top: -0.8rem;
}
.ui-datepicker-next span:after {
  right: -1rem;
  border-top: 0.6rem solid transparent;
  border-bottom: 0.6rem solid transparent;
  border-left: 0.6rem solid #000;
  margin-top: -0.6rem;
}

.ui-datepicker-title {
  text-align: center;
  margin: 0 1.5rem;
}

.ui-datepicker-title select {
  display: inline-block;
  font-size: 1.4rem;
}

select.ui-datepicker-month-year {
  width: 100%;
}

.ui-datepicker-month {
  width: 47%;
  margin-right: 6%;
}

.ui-datepicker-year {
  width: 47%;
}

.ui-datepicker-table {
  border: none;
  font-size: 1rem;
  border-collapse: collapse;
}

.ui-datepicker-calendar {
  border-collapse: collapse;
  margin: 1rem 1.5rem 1.5rem;
  border-width: 0;
  width: 23rem;
}
.ui-datepicker-calendar td,
.ui-datepicker-calendar th {
  background: none;
  border-width: 0;
  width: 3rem;
  height: 3rem;
  padding: 0;
  text-align: center;
}
.ui-datepicker-calendar th {
  text-transform: uppercase;
  color: #212121;
}
.ui-datepicker-calendar .ui-datepicker-week-col {
  text-align: center;
}
.ui-datepicker-calendar td a,
.ui-datepicker-calendar th span,
.ui-datepicker-calendar td span {
  background: none;
  border-width: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  text-align: center;
  line-height: 3rem;
  padding: 0;
  font-size: 1.4rem;
  display: block;
}
.ui-datepicker-calendar td a,
.ui-datepicker-calendar td span {
  color: #696969;
}
.ui-datepicker-calendar .ui-state-hover {
  background: #000000;
  color: #fff;
}
.ui-datepicker-calendar .ui-state-disabled {
  background: transparent;
}
.ui-datepicker-calendar .ui-state-disabled span {
  color: #dcdcdc;
}
.ui-datepicker-calendar .ui-state-active {
  background: #000000;
  color: #fff;
}

.ui-datepicker-buttonpane {
  overflow: hidden;
  padding-top: 1rem;
  border-top: #dcdcdc 1px solid;
}
.ui-datepicker-buttonpane button {
  float: right;
}
.ui-datepicker-buttonpane button.ui-datepicker-current {
  float: left;
}

.ui-datepicker-rtl {
  direction: rtl;
}

.ui-datepicker-rtl .ui-datepicker-prev {
  right: 2px;
  left: auto;
}

.ui-datepicker-rtl .ui-datepicker-next {
  left: 2px;
  right: auto;
}

.ui-datepicker-rtl .ui-datepicker-prev:hover {
  right: 1px;
  left: auto;
}

.ui-datepicker-rtl .ui-datepicker-next:hover {
  left: 1px;
  right: auto;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane {
  clear: right;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button {
  float: left;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
  float: right;
}

.ui-datepicker-rtl .ui-datepicker-group {
  float: right;
}

.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
  border-right-width: 0;
  border-left-width: 1px;
}

.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
  border-right-width: 0;
  border-left-width: 1px;
}

.ui-timepicker-div {
  padding: 1rem 0 0.5rem 0;
}
.ui-timepicker-div .ui-widget-header {
  margin-bottom: 0.8rem;
}
.ui-timepicker-div dl {
  text-align: left;
}
.ui-timepicker-div dl dt {
  height: 2.5rem;
  margin-bottom: -2.2rem;
}
.ui-timepicker-div dl .ui_tpicker_time_label {
  margin-bottom: -2.5rem;
}
.ui-timepicker-div dl dd {
  margin: 0 0 1rem 6.5rem;
}
.ui-timepicker-div td {
  font-size: 90%;
}

.ui-tpicker-grid-label {
  background: none;
  border: none;
  margin: 0;
  padding: 0;
}

.ui-slider {
  position: relative;
  text-align: left;
}

.ui-slider-handle {
  height: 1rem;
  width: 1rem;
  border-radius: 1rem;
  background: #000000;
  display: block;
  position: absolute;
  z-index: 2;
  cursor: default;
}

.ui-slider-horizontal {
  height: 1rem;
  border-radius: 1rem;
  border: none;
  background: #f4f4f4;
}
.ui-slider-horizontal .ui-slider-handle {
  margin-left: -0.5rem;
}

/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
  position: absolute;
  /*must have*/
  z-index: -1;
  /*must have*/
  filter: mask();
  /*must have*/
  top: -4px;
  /*must have*/
  left: -4px;
  /*must have*/
  width: 200px;
  /*must have*/
  height: 200px;
  /*must have*/
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
.cs-captcha__image-controls {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 1.5rem;
}
.cs-dashboard .cs-captcha__image-controls {
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 30em) {
  .cs-dashboard .cs-captcha__image-controls {
    flex-direction: row;
    align-items: flex-end;
  }
}
@media (max-width: 48em) {
  .cs-captcha__image-controls {
    flex-wrap: wrap;
  }
}
.cs-captcha__image {
  margin-right: 1rem;
}
.cs-captcha__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-captcha__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-captcha__button, .cs-captcha__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.cs-captcha__button *, .cs-captcha__button:visited * {
  color: #000000;
  fill: #000000;
}
.cs-captcha__button:hover:not([disabled]), .cs-captcha__button:focus:not([disabled]), .cs-captcha__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.cs-captcha__button:hover:not([disabled]) *, .cs-captcha__button:focus:not([disabled]) *, .cs-captcha__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-captcha__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-dashboard .cs-captcha__button {
  margin-top: 2rem;
}
@media (min-width: 30em) {
  .cs-dashboard .cs-captcha__button {
    margin-top: 0;
  }
}
.cs-captcha__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.cs-captcha__note {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
}
.cs-dashboard .cs-captcha__wrapper {
  width: 100%;
  margin-bottom: 2rem;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-dashboard {
  width: 100%;
}
@media (min-width: 48em) {
  .cs-dashboard__columns {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
  }
  .cs-dashboard__columns:before, .cs-dashboard__columns:after {
    display: none;
  }
}
.cs-dashboard__messages {
  width: 100%;
}
.cs-dashboard__sidebar {
  order: 1;
}
@media (min-width: 48em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 2);
    padding: 0 1.5rem 0 0;
  }
}
@media (min-width: 64em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 2);
    padding: 0 1.5rem 0 0;
  }
}
@media (min-width: 80em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 3);
  }
}
@media (min-width: 90em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 3);
  }
}
@media (min-width: 120em) {
  .cs-dashboard__sidebar {
    width: calc(100% / 4);
  }
}
.cs-dashboard__main {
  order: 2;
}
@media (min-width: 48em) {
  .cs-dashboard__main {
    width: calc(100% - (100% / 2));
    padding: 1.5rem 0 0 1.5rem;
  }
}
@media (min-width: 64em) {
  .cs-dashboard__main {
    width: calc(100% - (100% / 2));
    padding: 1.5rem 0 0 1.5rem;
  }
}
@media (min-width: 80em) {
  .cs-dashboard__main {
    width: calc(100% - (100% / 3));
  }
}
@media (min-width: 90em) {
  .cs-dashboard__main {
    width: calc(100% - (100% / 3));
  }
}
@media (min-width: 120em) {
  .cs-dashboard__main {
    width: calc(100% - (100% / 4));
  }
}
.cs-dashboard .cs-page-category__main--search-no-result {
  width: 100%;
}
.cs-dashboard__columns {
  position: relative;
  margin: 3rem 0;
}
@media (min-width: 48em) {
  .cs-dashboard__columns {
    padding: 0 0 2rem;
  }
}
@media (min-width: 64em) {
  .cs-dashboard__sidebar {
    padding: 0;
  }
}
.cs-dashboard__main {
  margin-bottom: 2rem;
  margin-top: 2rem;
  box-sizing: border-box;
}
@media (min-width: 48em) {
  .cs-dashboard__main {
    padding: 0 0 0 3.5rem;
    margin-top: 0;
  }
}
@media (min-width: 48em) {
  .wishlist-index-index.page-layout-1column .cs-dashboard__main {
    width: 100% !important;
  }
}
.cs-dashboard__top {
  padding: 0 0 3rem;
}
.cs-dashboard__page-title {
  padding-bottom: 3rem;
}
.cs-dashboard .page-title {
  margin: 0;
  padding: 0 0 1rem 0;
}
.cs-dashboard .columns .column.main {
  padding: 0;
}
.cs-dashboard .message-error,
.cs-dashboard .message-success,
.cs-dashboard .message-notice {
  margin-bottom: 1rem;
}
.cs-dashboard .page-title-wrapper {
  background: transparent;
}
.cs-dashboard__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-top: 2rem;
  border-top: 2px solid #dcdcdc;
}
@media (min-width: 48em) {
  .cs-dashboard__bottom {
    width: 100%;
    padding-top: 3rem;
  }
}
.cs-dashboard__wishlist-line {
  margin: 0;
}
.cs-dashboard__wishlist-products-grid {
  margin: 0 0 3rem;
}
@media (min-width: 48em) {
  .cs-dashboard__wishlist-products-grid {
    margin: 0 0 4rem;
  }
}
.cs-dashboard__wishlist-products-grid--skip-spacing {
  margin: 0;
}
.cs-dashboard__wishlist-guest-code {
  overflow-wrap: break-word;
}
.cs-dashboard__bottom-wishlist {
  margin: 0 0 3rem;
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  width: 100%;
}
@media (min-width: 48em) {
  .cs-dashboard__bottom-wishlist {
    margin: 0 0 4rem;
  }
}
.cs-dashboard__bottom-wishlist--skip-spacing {
  margin: 0;
}
.cs-dashboard__bottom-wishlist-item {
  width: 100%;
}
@media (min-width: 30em) {
  .cs-dashboard__bottom-wishlist-item {
    width: 50%;
  }
}
@media (min-width: 48em) {
  .cs-dashboard__bottom-wishlist-item {
    width: 33.33%;
  }
}
.cs-dashboard__bottom-wishlist-item:nth-child(n+4) {
  display: none;
}
.cs-dashboard__login {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media (min-width: 48em) {
  .cs-dashboard__login {
    flex-wrap: nowrap;
    padding: 0;
  }
}
.cs-dashboard__login-section {
  width: 100%;
  background: transparent;
  box-sizing: border-box;
  margin-bottom: 2rem;
}
@media (min-width: 48em) {
  .cs-dashboard__login-section {
    width: 50%;
  }
  .cs-dashboard__login-section:nth-child(2n+1) {
    border-right: 1px solid #dcdcdc;
    padding-right: 2rem;
  }
  .cs-dashboard__login-section:nth-child(2n+2) {
    padding-left: 2rem;
  }
}
.cs-dashboard__contact-form {
  box-sizing: border-box;
  width: 100%;
  margin-bottom: 2rem;
  background: transparent;
}
.cs-dashboard .fieldset,
.cs-dashboard .form {
  width: 100%;
  min-width: 15rem !important;
}
.cs-dashboard .fieldset {
  width: 100%;
  border: 0;
  padding: 0;
  margin: 0;
  max-width: 45rem !important;
}
.cs-dashboard .field {
  margin-bottom: 1rem;
}
.cs-dashboard .limiter {
  margin-bottom: 0;
}
.cs-dashboard select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #212121;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s;
}
.cs-dashboard select:-moz-focusring, .cs-dashboard select::-moz-focus-inner {
  color: transparent !important;
  text-shadow: 0 0 0 #000 !important;
}
.cs-dashboard select:hover:not([disabled]), .cs-dashboard select:focus:not([disabled]) {
  border: 1px solid #000000;
  box-shadow: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23000000'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
}
.cs-dashboard select[disabled] {
  opacity: 0.65;
}
.cs-dashboard select option {
  font-weight: 500;
  padding: 0;
  color: initial;
}
.cs-dashboard .choice {
  display: flex;
  align-items: flex-start;
  flex-wrap: nowrap;
}
.cs-dashboard .choice .label {
  width: auto;
  font-weight: 300;
  font-size: 1.4rem;
}
.cs-dashboard .choice .checkbox {
  margin-top: 0.2rem;
}
.cs-dashboard .field-name-prefix {
  max-width: 12rem;
}
.cs-dashboard .primary > button,
.cs-dashboard .primary .create {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  min-width: 12rem;
}
.cs-dashboard .primary > button::-moz-focus-inner,
.cs-dashboard .primary .create::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-dashboard .primary > button, .cs-dashboard .primary > button:visited,
.cs-dashboard .primary .create,
.cs-dashboard .primary .create:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-dashboard .primary > button *, .cs-dashboard .primary > button:visited *,
.cs-dashboard .primary .create *,
.cs-dashboard .primary .create:visited * {
  color: #fff;
  fill: #fff;
}
.cs-dashboard .primary > button:hover:not([disabled]), .cs-dashboard .primary > button:focus:not([disabled]), .cs-dashboard .primary > button:active:not([disabled]),
.cs-dashboard .primary .create:hover:not([disabled]),
.cs-dashboard .primary .create:focus:not([disabled]),
.cs-dashboard .primary .create:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-dashboard .primary > button:hover:not([disabled]) *, .cs-dashboard .primary > button:focus:not([disabled]) *, .cs-dashboard .primary > button:active:not([disabled]) *,
.cs-dashboard .primary .create:hover:not([disabled]) *,
.cs-dashboard .primary .create:focus:not([disabled]) *,
.cs-dashboard .primary .create:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-dashboard .primary > button[disabled],
.cs-dashboard .primary .create[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.wishlist-index-index .cs-dashboard .primary > button,
.wishlist-index-index .cs-dashboard .primary .create {
  z-index: 1;
}
.cs-dashboard .primary > button span,
.cs-dashboard .primary .create span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.cs-dashboard .primary > button.action.update {
  display: none;
}
.cs-dashboard .remind,
.cs-dashboard .back {
  font-size: 1.4rem;
  margin-top: 0.7rem;
  display: inline-block;
}
.cs-dashboard .counter {
  font-weight: 300;
  transform: translateX(-1rem);
  display: inline-block;
}
.cs-dashboard .counter:before {
  content: "(";
}
.cs-dashboard .counter:after {
  content: ")";
}
.cs-dashboard .block {
  width: 100%;
  margin: 1.5rem 0 2.5rem;
  background: transparent;
  padding: 0;
  box-sizing: border-box;
}
@media (min-width: 48em) {
  .cs-dashboard .block {
    margin: 1.5rem 0 4rem;
  }
}
.cs-dashboard .block-title,
.cs-dashboard .legend,
.cs-dashboard .order-title {
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 1rem;
  padding-bottom: 0.8rem;
  font-weight: 600;
  font-size: 1.8rem;
  width: 100%;
}
.cs-dashboard .block-title strong,
.cs-dashboard .legend strong,
.cs-dashboard .order-title strong {
  font-weight: 600;
  margin-right: 1rem;
}
.cs-dashboard .table-wrapper {
  width: 100%;
}
.cs-dashboard .block-title a {
  font-weight: 300;
  font-size: 1.4rem;
  vertical-align: text-bottom;
  white-space: nowrap;
}
.cs-dashboard .box-title {
  font-size: 1.1rem;
  font-weight: 600;
  text-transform: uppercase;
}
.cs-dashboard .block-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 2rem 0 0;
}
@media (max-width: 63.99em) {
  .sales-order-history .cs-dashboard .block-content {
    margin-top: 0;
  }
}
.cs-dashboard .block-content.no-display {
  display: none;
}
.cs-dashboard .block-new-customer .block-content {
  flex-direction: column;
}
.cs-dashboard .block-new-customer .block-content .fieldset {
  margin-bottom: 1rem;
}
@media (max-width: 63.99em) {
  .cs-dashboard .block-reward-history .cs-toolbar__item--amount {
    width: 100%;
    justify-content: center;
  }
}
.cs-dashboard .block-reward-history .cs-toolbar__item--amount:nth-child(1) {
  display: none;
}
@media (max-width: 63.99em) {
  .cs-dashboard .block-reward-history .pages {
    width: 100%;
    justify-content: center;
    display: flex;
    margin: 0.7rem 0 2rem;
  }
}
.cs-dashboard .block-reward-history .pages:nth-child(2) {
  display: none;
}
@media (max-width: 63.99em) {
  .cs-dashboard .block-reward-history .cs-toolbar__item--limiter {
    margin: 0 auto;
  }
}
.cs-dashboard .block-reward-history .cs-toolbar__item--limiter:nth-child(3) {
  display: none;
}
.cs-dashboard .box-actions a + a:before,
.cs-dashboard .actions a + a:before {
  margin: 0 0.7rem 0 0.5rem;
  content: "";
  display: inline-block;
  width: 1px;
  height: 1.2rem;
  border-right: 2px solid #dcdcdc;
}
.cs-dashboard .box-actions a,
.cs-dashboard .actions a {
  font-weight: 300;
}
.cs-dashboard .table-wrapper,
.cs-dashboard .orders-history,
.cs-dashboard .form-wishlist-items {
  background: transparent;
}
.cs-dashboard .table-wrapper + .toolbar, .cs-dashboard .table-wrapper + .actions-toolbar,
.cs-dashboard .orders-history + .toolbar,
.cs-dashboard .orders-history + .actions-toolbar,
.cs-dashboard .form-wishlist-items + .toolbar,
.cs-dashboard .form-wishlist-items + .actions-toolbar {
  background: transparent;
  padding: 0;
}
.cs-dashboard .table-wrapper.order-items + .actions-toolbar,
.cs-dashboard .orders-history.order-items + .actions-toolbar,
.cs-dashboard .form-wishlist-items.order-items + .actions-toolbar {
  padding: 0;
}
.cs-dashboard .table-wrapper + .toolbar,
.cs-dashboard .orders-history + .toolbar,
.cs-dashboard .form-wishlist-items + .toolbar {
  width: 100%;
}
.cs-dashboard .table-wrapper .action,
.cs-dashboard .orders-history .action,
.cs-dashboard .form-wishlist-items .action {
  margin-right: 0;
}
.cs-dashboard .form-wishlist-items .actions-toolbar .primary {
  margin-bottom: 2rem;
}
@media (max-width: 64em) {
  .cs-dashboard .form-wishlist-items .actions-toolbar .primary {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
  }
  .cs-dashboard .form-wishlist-items .actions-toolbar .primary .action:last-child {
    margin-top: 1rem;
  }
}
.cs-dashboard .form-pwanotifications-manage .fieldset {
  max-width: initial !important;
}
.cs-dashboard .form-pwanotifications-manage .field {
  flex-wrap: nowrap;
}
.cs-dashboard .form-pwanotifications-manage .actions-toolbar {
  margin-top: 2rem;
}
.cs-dashboard .cs-toolbar__item--amount {
  display: flex;
  align-items: center;
}
.cs-dashboard .toolbar {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
@media (max-width: 47.99em) {
  .cs-dashboard .toolbar {
    align-items: center;
  }
}
@media (max-width: 63.99em) {
  .cs-dashboard .toolbar {
    flex-direction: column;
  }
}
.cs-dashboard .toolbar::after, .cs-dashboard .toolbar::before {
  display: none;
}
@media (max-width: 63.99em) {
  .cs-dashboard .toolbar .cs-toolbar__item {
    display: flex;
    justify-content: center;
    margin: auto;
  }
  .cs-dashboard .toolbar .cs-toolbar__item p {
    margin-bottom: 1rem;
  }
}
.cs-dashboard .toolbar .cs-toolbar__item--amount {
  margin-bottom: 1.5rem;
}
@media (min-width: 64em) {
  .cs-dashboard .toolbar .cs-toolbar__item--amount {
    margin-bottom: 0;
  }
}
@media (max-width: 47.99em) {
  .cs-dashboard .toolbar .cs-toolbar__item--amount {
    padding-bottom: 0;
  }
}
.cs-dashboard .toolbar .cs-toolbar__item--amount + .cs-toolbar__item--limiter {
  margin-top: 0;
}
@media (max-width: 63.99em) {
  .cs-dashboard .toolbar .cs-toolbar__item--limiter {
    margin-top: 2.5rem;
  }
}
@media (min-width: 64em) {
  .cs-dashboard .toolbar .cs-toolbar__item--limiter {
    margin-bottom: 0;
  }
}
.cs-dashboard .toolbar .toolbar-amount {
  padding-top: 0;
}
@media (max-width: 47.99em) {
  .cs-dashboard .toolbar .pages {
    margin: 0 auto;
  }
}
@media (min-width: 48em) {
  .cs-dashboard .toolbar .pages {
    position: static;
    display: flex;
    justify-content: center;
    width: auto;
  }
}
@media (max-width: 47.99em) {
  .cs-dashboard .toolbar .limiter {
    display: flex;
    justify-content: center;
  }
}
@media (max-width: 47.99em) {
  .cs-dashboard .toolbar .limiter .label {
    width: auto;
  }
}
.cs-dashboard .toolbar.wishlist-toolbar br {
  display: none;
}
.cs-dashboard .actions-toolbar > .secondary .action.back,
.cs-dashboard .secondary .action.edit-email-preferences {
  display: none;
}
.review-customer-view .cs-dashboard .actions-toolbar > .secondary .action.back,
.review-customer-view .cs-dashboard .secondary .action.edit-email-preferences {
  display: block;
}
.cs-dashboard .box,
.cs-dashboard .addresses {
  width: 100%;
  box-sizing: border-box;
}
@media (min-width: 30em) {
  .cs-dashboard .box,
.cs-dashboard .addresses {
    width: 48%;
  }
}
.cs-dashboard .box-content,
.cs-dashboard .addresses .item {
  font-weight: 300;
  color: #696969;
  line-height: 2.5rem;
  margin-bottom: 0;
}
.cs-dashboard .tooltip.wrapper {
  font-size: 1.4rem;
  display: inline-block;
  padding-left: 0.5rem;
}
.cs-dashboard .choice.persistent {
  padding-bottom: 1.5rem;
}
@media (max-width: 63.99em) {
  .cs-dashboard .table-order-items .cs-table__col:last-child {
    padding-bottom: 2rem;
  }
  .cs-dashboard .table-order-items .price-excluding-tax,
.cs-dashboard .table-order-items .price-including-tax,
.cs-dashboard .table-order-items .items-qty,
.cs-dashboard .table-order-items .product-item-name {
    display: inline-block;
    font-weight: 400;
    margin: 0;
    color: #696969;
  }
  .cs-dashboard .table-order-items .cs-cart-item__options-label {
    text-transform: none;
    width: auto;
    margin-right: 1rem;
  }
  .cs-dashboard .table-order-items .cs-cart-item__options-label:after {
    content: ":";
  }
  .cs-dashboard .table-order-items .cs-table__col.subtotal {
    text-align: left;
  }
  .cs-dashboard .table-order-items .price-excluding-tax .price {
    font-weight: 400;
  }
}
.cs-dashboard .table-order-items .items-qty {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cs-dashboard .table-order-items .items-qty .item {
  margin-bottom: 0.5rem;
}
.cs-dashboard .table-order-items .items-qty .item:last-child {
  margin-bottom: 0;
}
.sales-order-view .cs-dashboard .actions, .sales-order-invoice .cs-dashboard .actions, .sales-order-shipment .cs-dashboard .actions {
  width: 100%;
  margin-top: 2rem;
  display: flex;
}
.sales-order-view .cs-dashboard .actions .order, .sales-order-invoice .cs-dashboard .actions .order, .sales-order-shipment .cs-dashboard .actions .order {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  font-size: 1.2rem;
  margin-right: 1rem;
  margin-bottom: 0.8rem;
}
.sales-order-view .cs-dashboard .actions .order::-moz-focus-inner, .sales-order-invoice .cs-dashboard .actions .order::-moz-focus-inner, .sales-order-shipment .cs-dashboard .actions .order::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.sales-order-view .cs-dashboard .actions .order, .sales-order-view .cs-dashboard .actions .order:visited, .sales-order-invoice .cs-dashboard .actions .order, .sales-order-invoice .cs-dashboard .actions .order:visited, .sales-order-shipment .cs-dashboard .actions .order, .sales-order-shipment .cs-dashboard .actions .order:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.sales-order-view .cs-dashboard .actions .order *, .sales-order-view .cs-dashboard .actions .order:visited *, .sales-order-invoice .cs-dashboard .actions .order *, .sales-order-invoice .cs-dashboard .actions .order:visited *, .sales-order-shipment .cs-dashboard .actions .order *, .sales-order-shipment .cs-dashboard .actions .order:visited * {
  color: #fff;
  fill: #fff;
}
.sales-order-view .cs-dashboard .actions .order:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .order:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .order:active:not([disabled]), .sales-order-invoice .cs-dashboard .actions .order:hover:not([disabled]), .sales-order-invoice .cs-dashboard .actions .order:focus:not([disabled]), .sales-order-invoice .cs-dashboard .actions .order:active:not([disabled]), .sales-order-shipment .cs-dashboard .actions .order:hover:not([disabled]), .sales-order-shipment .cs-dashboard .actions .order:focus:not([disabled]), .sales-order-shipment .cs-dashboard .actions .order:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.sales-order-view .cs-dashboard .actions .order:hover:not([disabled]) *, .sales-order-view .cs-dashboard .actions .order:focus:not([disabled]) *, .sales-order-view .cs-dashboard .actions .order:active:not([disabled]) *, .sales-order-invoice .cs-dashboard .actions .order:hover:not([disabled]) *, .sales-order-invoice .cs-dashboard .actions .order:focus:not([disabled]) *, .sales-order-invoice .cs-dashboard .actions .order:active:not([disabled]) *, .sales-order-shipment .cs-dashboard .actions .order:hover:not([disabled]) *, .sales-order-shipment .cs-dashboard .actions .order:focus:not([disabled]) *, .sales-order-shipment .cs-dashboard .actions .order:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.sales-order-view .cs-dashboard .actions .order[disabled], .sales-order-invoice .cs-dashboard .actions .order[disabled], .sales-order-shipment .cs-dashboard .actions .order[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.sales-order-view .cs-dashboard .actions .order::before, .sales-order-invoice .cs-dashboard .actions .order::before, .sales-order-shipment .cs-dashboard .actions .order::before {
  display: none;
}
.sales-order-view .cs-dashboard .actions .order span, .sales-order-invoice .cs-dashboard .actions .order span, .sales-order-shipment .cs-dashboard .actions .order span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.sales-order-view .cs-dashboard .actions .print, .sales-order-invoice .cs-dashboard .actions .print, .sales-order-shipment .cs-dashboard .actions .print {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  font-size: 1.2rem;
  margin-right: 1rem;
  margin-bottom: 0.8rem;
}
.sales-order-view .cs-dashboard .actions .print::-moz-focus-inner, .sales-order-invoice .cs-dashboard .actions .print::-moz-focus-inner, .sales-order-shipment .cs-dashboard .actions .print::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.sales-order-view .cs-dashboard .actions .print, .sales-order-view .cs-dashboard .actions .print:visited, .sales-order-invoice .cs-dashboard .actions .print, .sales-order-invoice .cs-dashboard .actions .print:visited, .sales-order-shipment .cs-dashboard .actions .print, .sales-order-shipment .cs-dashboard .actions .print:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.sales-order-view .cs-dashboard .actions .print *, .sales-order-view .cs-dashboard .actions .print:visited *, .sales-order-invoice .cs-dashboard .actions .print *, .sales-order-invoice .cs-dashboard .actions .print:visited *, .sales-order-shipment .cs-dashboard .actions .print *, .sales-order-shipment .cs-dashboard .actions .print:visited * {
  color: #000000;
  fill: #000000;
}
.sales-order-view .cs-dashboard .actions .print:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .print:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .print:active:not([disabled]), .sales-order-invoice .cs-dashboard .actions .print:hover:not([disabled]), .sales-order-invoice .cs-dashboard .actions .print:focus:not([disabled]), .sales-order-invoice .cs-dashboard .actions .print:active:not([disabled]), .sales-order-shipment .cs-dashboard .actions .print:hover:not([disabled]), .sales-order-shipment .cs-dashboard .actions .print:focus:not([disabled]), .sales-order-shipment .cs-dashboard .actions .print:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.sales-order-view .cs-dashboard .actions .print:hover:not([disabled]) *, .sales-order-view .cs-dashboard .actions .print:focus:not([disabled]) *, .sales-order-view .cs-dashboard .actions .print:active:not([disabled]) *, .sales-order-invoice .cs-dashboard .actions .print:hover:not([disabled]) *, .sales-order-invoice .cs-dashboard .actions .print:focus:not([disabled]) *, .sales-order-invoice .cs-dashboard .actions .print:active:not([disabled]) *, .sales-order-shipment .cs-dashboard .actions .print:hover:not([disabled]) *, .sales-order-shipment .cs-dashboard .actions .print:focus:not([disabled]) *, .sales-order-shipment .cs-dashboard .actions .print:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.sales-order-view .cs-dashboard .actions .print[disabled], .sales-order-invoice .cs-dashboard .actions .print[disabled], .sales-order-shipment .cs-dashboard .actions .print[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.sales-order-view .cs-dashboard .actions .print::before, .sales-order-invoice .cs-dashboard .actions .print::before, .sales-order-shipment .cs-dashboard .actions .print::before {
  display: none;
}
.sales-order-view .cs-dashboard .actions .print span, .sales-order-invoice .cs-dashboard .actions .print span, .sales-order-shipment .cs-dashboard .actions .print span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.cs-dashboard .block-reviews-dashboard .product-name {
  font-weight: 300;
}
.cs-dashboard .rating-result {
  margin-left: 0;
  width: auto;
}
.cs-dashboard .rating-result::before {
  display: none;
}
.cs-dashboard .rating-summary.item {
  display: flex;
  overflow: visible;
}
.cs-dashboard .customer-review .product-name {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
}
.cs-dashboard .customer-review .review-title {
  font-family: "proxima-nova", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #212121;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
  text-transform: none;
}
.cs-dashboard .customer-review.view {
  margin-bottom: 2rem;
}
.cs-dashboard .customer-review.view .review.title,
.cs-dashboard .customer-review.view .ratings-summary,
.cs-dashboard .customer-review.view .product-details {
  margin-bottom: 2rem;
}
.cs-dashboard .customer-review .product-details {
  margin-bottom: 4rem;
}
.cs-dashboard .customer-review .product-media {
  float: left;
  margin-right: 3%;
  max-width: 28.5rem;
  width: 30%;
}
.cs-dashboard .customer-review .review-details .customer-review-rating {
  margin-bottom: 2rem;
}
.cs-dashboard .customer-review .review-details .customer-review-rating .item {
  margin-bottom: 1rem;
}
.cs-dashboard .customer-review .review-details .customer-review-rating .item:last-child {
  margin-bottom: 0;
}
.cs-dashboard .customer-review .review-details .review-title {
  line-height: 1.1;
  font-size: 1.8rem;
  margin-top: 1.5rem;
  font-weight: 600;
  margin-bottom: 2rem;
}
.cs-dashboard .customer-review .review-details .review-content {
  margin-bottom: 2rem;
}
.cs-dashboard .customer-review .product-reviews-summary .rating-summary,
.cs-dashboard .customer-review .product-reviews-summary .reviews-actions {
  display: block;
}
.cs-dashboard .form.create.account,
.cs-dashboard .form-address-edit,
.cs-dashboard .form-edit-account,
.cs-dashboard .form.password.reset,
.cs-dashboard .form.send.confirmation,
.cs-dashboard .form.password.forget,
.cs-dashboard #aw_giftcard__check_code_form {
  background: transparent;
  padding: 0;
}
@media (min-width: 48em) {
  .cs-dashboard .form.create.account,
.cs-dashboard .form-address-edit,
.cs-dashboard .form-edit-account,
.cs-dashboard .form.password.reset,
.cs-dashboard .form.send.confirmation,
.cs-dashboard .form.password.forget,
.cs-dashboard #aw_giftcard__check_code_form {
    width: 100%;
  }
}
.cs-dashboard .form.create.account br,
.cs-dashboard .form-address-edit br,
.cs-dashboard .form-edit-account br,
.cs-dashboard .form.password.reset br,
.cs-dashboard .form.send.confirmation br,
.cs-dashboard .form.password.forget br,
.cs-dashboard #aw_giftcard__check_code_form br {
  display: none;
}
.cs-dashboard .form.create.account .fullname .label,
.cs-dashboard .form-address-edit .fullname .label,
.cs-dashboard .form-edit-account .fullname .label,
.cs-dashboard .form.password.reset .fullname .label,
.cs-dashboard .form.send.confirmation .fullname .label,
.cs-dashboard .form.password.forget .fullname .label,
.cs-dashboard #aw_giftcard__check_code_form .fullname .label {
  text-align: left;
  width: 100%;
}
.cs-dashboard .form.create.account .fullname > .label,
.cs-dashboard .form-address-edit .fullname > .label,
.cs-dashboard .form-edit-account .fullname > .label,
.cs-dashboard .form.password.reset .fullname > .label,
.cs-dashboard .form.send.confirmation .fullname > .label,
.cs-dashboard .form.password.forget .fullname > .label,
.cs-dashboard #aw_giftcard__check_code_form .fullname > .label {
  width: 1px;
}
.cs-dashboard .form.create.account .fullname .control,
.cs-dashboard .form-address-edit .fullname .control,
.cs-dashboard .form-edit-account .fullname .control,
.cs-dashboard .form.password.reset .fullname .control,
.cs-dashboard .form.send.confirmation .fullname .control,
.cs-dashboard .form.password.forget .fullname .control,
.cs-dashboard #aw_giftcard__check_code_form .fullname .control {
  width: 100%;
}
.cs-dashboard .form.create.account .action.primary,
.cs-dashboard .form-address-edit .action.primary,
.cs-dashboard .form-edit-account .action.primary,
.cs-dashboard .form.password.reset .action.primary,
.cs-dashboard .form.send.confirmation .action.primary,
.cs-dashboard .form.password.forget .action.primary,
.cs-dashboard #aw_giftcard__check_code_form .action.primary {
  font-size: 1.4rem;
}
.cs-dashboard .form.create.account .back,
.cs-dashboard .form-address-edit .back,
.cs-dashboard .form-edit-account .back,
.cs-dashboard .form.password.reset .back,
.cs-dashboard .form.send.confirmation .back,
.cs-dashboard .form.password.forget .back,
.cs-dashboard #aw_giftcard__check_code_form .back {
  display: none;
}
.cs-dashboard .form.create.account .fieldset,
.cs-dashboard .form-address-edit .fieldset,
.cs-dashboard .form-edit-account .fieldset,
.cs-dashboard .form.password.reset .fieldset,
.cs-dashboard .form.send.confirmation .fieldset,
.cs-dashboard .form.password.forget .fieldset,
.cs-dashboard #aw_giftcard__check_code_form .fieldset {
  margin-bottom: 2rem;
}
.cs-dashboard .form.create.account .fieldset-fullname,
.cs-dashboard .form-address-edit .fieldset-fullname,
.cs-dashboard .form-edit-account .fieldset-fullname,
.cs-dashboard .form.password.reset .fieldset-fullname,
.cs-dashboard .form.send.confirmation .fieldset-fullname,
.cs-dashboard .form.password.forget .fieldset-fullname,
.cs-dashboard #aw_giftcard__check_code_form .fieldset-fullname {
  margin-bottom: 0;
}
.cs-dashboard .addresses {
  width: 100%;
}
.cs-dashboard .block-addresses-list + .actions-toolbar {
  background: transparent;
}
@media (max-width: 47.99em) {
  .cs-dashboard .box-billing-address {
    margin-bottom: 2rem;
  }
}
.cs-dashboard .table-additional-addresses-items .col.state {
  display: none;
}
@media (min-width: 48.01em) {
  .cs-dashboard .table-additional-addresses-items th:first-child,
.cs-dashboard .table-additional-addresses-items td:first-child {
    padding-left: 0 !important;
  }
}
@media (min-width: 48.01em) {
  .cs-dashboard .table-additional-addresses-items th:last-child,
.cs-dashboard .table-additional-addresses-items td:last-child {
    padding-right: 0 !important;
  }
}
@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.delete {
    width: 100%;
  }
  .cs-dashboard .table-additional-addresses-items .action.delete:before {
    display: none !important;
  }
}
@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.edit {
    margin-right: 0;
    width: 100%;
  }
}
.cs-dashboard .form-newsletter-manage {
  background: transparent;
}
.cs-dashboard .form-newsletter-manage .fieldset {
  margin-bottom: 1rem;
}
.cs-dashboard__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-dashboard__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-dashboard__button, .cs-dashboard__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-dashboard__button *, .cs-dashboard__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-dashboard__button:hover:not([disabled]), .cs-dashboard__button:focus:not([disabled]), .cs-dashboard__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-dashboard__button:hover:not([disabled]) *, .cs-dashboard__button:focus:not([disabled]) *, .cs-dashboard__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-dashboard__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-dashboard__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.cs-dashboard__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none;
}
.cs-dashboard__wishlist-guest {
  padding-top: 2rem;
}
.cs-dashboard__wishlist-guest-copy {
  padding-left: 1rem;
  position: relative;
}
.cs-dashboard__wishlist-guest-copy-icon {
  width: 2rem;
  height: 2rem;
  fill: #696969;
  position: absolute;
}

.cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
@media (min-width: 64em) {
  .cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
    padding-top: 3rem;
    padding-bottom: 5rem;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-container--my-account-page {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.account .table-wrapper:last-child {
  margin-bottom: 0;
}

.account .table-wrapper .action {
  margin-right: 1.5rem;
}

.account .table-wrapper .action:last-child {
  margin-right: 0;
}

.block p:last-child {
  margin: 0;
}

.block .box-actions {
  margin-top: 0.5rem;
}

.account.page-print .items-qty {
  margin: 0;
  padding: 0;
  list-style: none;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-form, .cs-form__fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-form__field + .cs-form__field {
  margin-top: 1em;
}
.cs-form--disabled {
  opacity: 0.6;
}
.cs-form__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-form__button:hover, .cs-form__button:focus, .cs-form__button:active {
  background-color: #000000 !important;
}
.cs-form__button:before, .cs-form__button:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-form__button:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-form__button:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-form__button:hover:after {
  width: calc(100% + 2px);
}
.cs-form__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-form__button, .cs-form__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-form__button *, .cs-form__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-form__button:hover:not([disabled]), .cs-form__button:focus:not([disabled]), .cs-form__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-form__button:hover:not([disabled]) *, .cs-form__button:focus:not([disabled]) *, .cs-form__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-form__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-form__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-form__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}

.form,
.form .fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}
.form .field + .field {
  margin-top: 1em;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.password-strength-meter {
  font-size: 1.2rem;
  background-color: initial;
  border: none;
  border-top-width: 0;
  height: 3.2rem;
  line-height: 3.2rem;
  padding: 0 1rem;
  position: relative;
  z-index: 1;
  background-size: 2rem 0.7rem;
  background-repeat: no-repeat;
  background-position-y: 50%;
  background-position-x: calc(100% - 1rem), calc(100% - (2.5rem + 1rem)), calc(100% - (2.5rem * 2 + 1rem)), calc(100% - (2.5rem * 3 + 1rem)), calc(100% - (2.5rem * 4 + 1rem)), calc(100% - (2.5rem * 5 + 1rem));
  background-image: url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg");
}
@media (max-width: 29.99em) {
  .password-strength-meter {
    font-size: 1rem;
    padding: 0 0.5rem;
  }
}
.password-strength-meter:before {
  display: none;
}
.password-weak .password-strength-meter {
  background-image: url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter-weak.svg"), url("../images/icons/forms/icon-password-strength-meter-weak.svg");
}
.password-medium .password-strength-meter {
  background-image: url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter-medium.svg"), url("../images/icons/forms/icon-password-strength-meter-medium.svg"), url("../images/icons/forms/icon-password-strength-meter-medium.svg");
}
.password-strong .password-strength-meter {
  background-image: url("../images/icons/forms/icon-password-strength-meter.svg"), url("../images/icons/forms/icon-password-strength-meter-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-strong.svg");
}
.password-very-strong .password-strength-meter {
  background-image: url("../images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../images/icons/forms/icon-password-strength-meter-very-strong.svg");
}
@media (max-width: 29.99em) {
  .password-strength-meter {
    background-size: 1.5rem 0.5rem;
    background-position-x: calc(100% - 1rem), calc( 100% - ( 1.7rem + 1rem ) ), calc( 100% - ( 1.7rem * 2 + 1rem ) ), calc( 100% - ( 1.7rem * 3 + 1rem ) ), calc( 100% - ( 1.7rem * 4 + 1rem ) ), calc( 100% - ( 1.7rem * 5 + 1rem ) );
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-review {
  font-size: 1.4rem;
}
.cs-review__title {
  font-weight: 700;
  margin: 0 0 0.7rem;
  color: #212121;
}
.cs-review__rating, .cs-review__ratings {
  margin: 0 0 2rem;
  padding: 0;
}
.cs-review__compound-rating {
  list-style-type: none;
  display: flex;
  justify-content: space-between;
  max-width: 20rem;
  margin-bottom: 0.3em;
}
.cs-review__compound-rating:last-child {
  margin-bottom: 0;
}
.cs-review__meta {
  margin: 0 0 2rem;
  font-size: 0.9em;
}
.cs-review__meta--variant-support {
  display: flex;
  align-items: center;
}
.cs-review__meta-item {
  vertical-align: middle;
  padding: 0 1rem;
  line-height: 1em;
  border-right: 1px solid #dcdcdc;
}
.cs-review__meta-item:first-child {
  padding-left: 0;
}
.cs-review__meta-item:last-child {
  border-right: none;
}
.cs-review__author {
  color: #212121;
}
.cs-review__date {
  margin-left: -4px;
  color: #888;
}
.cs-review__variant {
  flex-grow: 1;
  padding: 0 1rem;
}
.cs-review__variant .swatch-attribute-options {
  margin-bottom: 0;
}
.cs-review__variant .swatch-option {
  cursor: default;
}
.cs-review__content {
  margin: 0;
  color: #888;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-reviews-summary {
  line-height: 1;
  display: flex;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  flex: 1 0 100%;
  border-bottom: 1px solid #dcdcdc;
}
@media (min-width: 64em) {
  .cs-reviews-summary {
    flex: 0 0 35rem;
    margin-bottom: 0;
    margin-right: 2.5rem;
    padding-right: 2.5rem;
    border-right: 1px solid #dcdcdc;
    border-bottom: 0;
    align-content: flex-start;
  }
}
.cs-reviews-summary__note {
  font-size: 4rem;
  line-height: 100%;
  color: #212121;
  font-weight: 300;
  margin-bottom: 0.5rem;
}
.cs-reviews-summary__note-right {
  color: #696969;
}
.cs-reviews-summary__all-count {
  width: 100%;
  margin: 1rem 0 2rem;
}
.cs-reviews-summary__button-wrapper {
  width: 100%;
  margin-top: 2.5rem;
  padding: 2.5rem 0;
  border-top: 1px solid #dcdcdc;
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-reviews-summary__button-wrapper {
    margin-top: 0;
    border-top: 0;
  }
}
.cs-reviews-summary__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  font-size: 1.4rem;
}
.cs-reviews-summary__button:hover, .cs-reviews-summary__button:focus, .cs-reviews-summary__button:active {
  background-color: #000000 !important;
}
.cs-reviews-summary__button:before, .cs-reviews-summary__button:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -1px;
}
.cs-reviews-summary__button:before {
  width: 3.4em;
  border-radius: 0 0px 0px 0;
  z-index: -1;
  background: linear-gradient(0deg, transparent 0%, transparent 0%, #666 0%, #666 100%);
}
.cs-reviews-summary__button:after {
  width: 3em;
  min-width: auto;
  background-color: #666;
  transition: width 0.25s linear;
  z-index: -2;
  border-radius: 0px;
}
.cs-reviews-summary__button:hover:after {
  width: calc(100% + 2px);
}
.cs-reviews-summary__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-reviews-summary__button, .cs-reviews-summary__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-reviews-summary__button *, .cs-reviews-summary__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-reviews-summary__button:hover:not([disabled]), .cs-reviews-summary__button:focus:not([disabled]), .cs-reviews-summary__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-reviews-summary__button:hover:not([disabled]) *, .cs-reviews-summary__button:focus:not([disabled]) *, .cs-reviews-summary__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-reviews-summary__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
@media (max-width: 29.99em) {
  .cs-reviews-summary__button {
    width: 100%;
  }
}
.cs-reviews-summary__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 3.75em;
}
.cs-reviews-summary__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 0.75em;
}
.cs-reviews-summary__stars {
  margin-right: 1rem;
  flex: 1 0 auto;
}
@media (min-width: 23.125em) {
  .cs-reviews-summary__stars {
    flex: 0 1 auto;
    margin-right: 4rem;
  }
}
@media (min-width: 48em) {
  .cs-reviews-summary__stars {
    flex: 0 1 100%;
  }
}
.cs-reviews-summary__bars {
  font-size: 1.4rem;
  list-style: none inside none;
  padding: 0;
  margin: 2.5rem 0 0;
  flex-grow: 1;
  color: #696969;
  max-width: 40rem;
  width: 100%;
}
@media (min-width: 23.125em) {
  .cs-reviews-summary__bars {
    margin-top: 0;
    width: auto;
  }
}
@media (min-width: 48em) {
  .cs-reviews-summary__bars {
    margin-top: 2.5rem;
  }
}
.cs-reviews-summary__bar {
  position: relative;
  vertical-align: bottom;
  display: flex;
  align-items: center;
  margin: 0 0 1rem 0;
}
.cs-reviews-summary__bar:last-child {
  margin-bottom: 0;
}
.cs-reviews-summary__bar-label {
  flex: 0 1 3.5em;
}
.cs-reviews-summary__bar-count {
  width: 1.5em;
  text-align: right;
}
.cs-reviews-summary__bar-progress {
  flex: 1 0 auto;
  position: relative;
  display: inline-block;
  min-width: 9rem;
  height: 0.9em;
  margin: 0 0.8rem 0 0.7rem;
  background: #f4f4f4;
}
.cs-reviews-summary__bar-progress-inner {
  position: absolute;
  left: 0;
  top: 0;
  height: inherit;
  background: #fedfa4;
}
.cs-reviews-summary__ratings-averages {
  list-style-type: none;
  width: 100%;
  margin: 2.5rem 0 0;
  padding: 2.5rem 0 0;
  border-top: 1px solid #dcdcdc;
  line-height: 1.43;
}
.cs-reviews-summary__ratings-averages-item {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 0.3em;
}
@media (min-width: 23.125em) {
  .cs-reviews-summary__ratings-averages-item {
    max-width: 25rem;
  }
}
@media (min-width: 48em) {
  .cs-reviews-summary__ratings-averages-item {
    max-width: 40rem;
  }
}
.cs-reviews-summary__ratings-averages-item:last-child {
  margin-bottom: 0;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-reviews {
  flex: 1 1;
}
@media (max-width: 63.99em) {
  .cs-reviews {
    border-bottom: 1px solid #dcdcdc;
  }
}
.cs-reviews__title {
  background: #f4f4f4;
}
@media (min-width: 48em) {
  .cs-reviews__title {
    background: none;
    padding: 0;
  }
}
.cs-reviews__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cs-reviews__label {
  float: left;
  line-height: 4rem;
}
.cs-reviews__item {
  padding: 0 0 2.5rem;
  margin: 0 0 2.5rem;
  border-bottom: 1px solid #dcdcdc;
  list-style: none;
}
.cs-reviews__item:last-of-type {
  border-bottom: 0;
  margin-bottom: 0;
}
.cs-reviews__form {
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  margin: 0;
}
@media (min-width: 64em) {
  .cs-reviews__form {
    background: #f4f4f4;
    padding: 3rem;
  }
}
.cs-reviews__form .swatch-opt {
  margin-bottom: 1.5em;
  font-size: 1.4rem;
  width: 100%;
}
.cs-reviews__form .swatch-opt .swatch-attribute {
  flex-direction: column;
  align-items: flex-start !important;
}
.cs-reviews__form .swatch-opt .swatch-attribute-label {
  font-weight: 700;
  font-size: 0.85em;
  width: 100%;
  text-transform: none;
  color: inherit;
}
.cs-reviews__form .swatch-opt .swatch-attribute-label:after {
  content: " *";
}
.cs-reviews__form .swatch-opt .swatch-attribute-options {
  margin-bottom: 0;
}
.cs-reviews__headline {
  width: 100%;
  margin: 0 0 1.4em;
  text-align: left;
  font-size: 1.8rem;
}
.cs-reviews__product-name {
  font-weight: 200;
}
.cs-reviews__rating-item:not(:first-of-type) {
  margin-top: 1em;
}
.cs-reviews__options {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 1.5em;
  font-size: 1.4rem;
}
@media (min-width: 64em) {
  .cs-reviews__options {
    width: 50%;
    padding-right: 3rem;
    border-right: 1px solid #dcdcdc;
  }
}
.cs-reviews__ratings {
  width: 100%;
}
.cs-reviews__fieldset {
  width: 100%;
  margin-bottom: 1.5em;
  text-align: left;
  box-sizing: border-box;
}
@media (min-width: 64em) {
  .cs-reviews__fieldset {
    width: 50%;
    padding-left: 3rem;
  }
}
.cs-reviews__submit {
  width: 100%;
  display: flex;
  justify-content: flex-start;
}
@media (min-width: 64em) {
  .cs-reviews__submit {
    justify-content: center;
  }
}
.cs-reviews__submit-button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-reviews__submit-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-reviews__submit-button, .cs-reviews__submit-button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-reviews__submit-button *, .cs-reviews__submit-button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-reviews__submit-button:hover:not([disabled]), .cs-reviews__submit-button:focus:not([disabled]), .cs-reviews__submit-button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-reviews__submit-button:hover:not([disabled]) *, .cs-reviews__submit-button:focus:not([disabled]) *, .cs-reviews__submit-button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-reviews__submit-button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
@media (max-width: 30em) {
  .cs-reviews__submit-button {
    width: 100%;
  }
}
.cs-reviews__rating-control {
  box-sizing: content-box;
  border: 1px solid #dcdcdc;
  border-radius: 0px;
  padding: 0.75em 1em;
  height: 1.275em;
  background: transparent;
  margin: 0 0 0.2em;
  display: flex;
  align-items: center;
}
.cs-reviews__rating-control input[type=radio],
.cs-reviews__rating-control .cs-reviews__rate-stars span {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.cs-reviews__rate-stars {
  box-sizing: border-box;
  order: 0;
}
.cs-reviews__rate-feedback {
  order: 1;
  font-size: 0.85em;
  line-height: 0.9em;
  color: #888;
  font-weight: 700;
  margin-left: 1.5rem;
  display: flex;
  align-items: center;
}
.cs-reviews__review-field {
  min-height: 10rem;
  resize: vertical;
}
.cs-reviews .cs-pagination__content {
  justify-content: center;
  margin: 2.5rem 0;
}
.cs-reviews--load-more {
  padding-bottom: 3rem;
}
@media (min-width: 48em) {
  .cs-reviews--load-more .cs-reviews__content {
    position: relative;
  }
}
.cs-reviews--load-more .cs-reviews__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  position: relative;
  margin: 2rem 0 0.5rem;
  padding-right: 4rem;
  position: relative;
}
.cs-reviews--load-more .cs-reviews__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-reviews--load-more .cs-reviews__button, .cs-reviews--load-more .cs-reviews__button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #000000;
}
.cs-reviews--load-more .cs-reviews__button *, .cs-reviews--load-more .cs-reviews__button:visited * {
  color: #fff;
  fill: #fff;
}
.cs-reviews--load-more .cs-reviews__button:hover:not([disabled]), .cs-reviews--load-more .cs-reviews__button:focus:not([disabled]), .cs-reviews--load-more .cs-reviews__button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid transparent;
  color: #fff;
  background-color: #666;
}
.cs-reviews--load-more .cs-reviews__button:hover:not([disabled]) *, .cs-reviews--load-more .cs-reviews__button:focus:not([disabled]) *, .cs-reviews--load-more .cs-reviews__button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-reviews--load-more .cs-reviews__button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-reviews--load-more .cs-reviews__button:before, .cs-reviews--load-more .cs-reviews__button:after {
  content: "";
  position: absolute;
  top: 50%;
  width: 1rem;
  height: 1px;
  left: auto;
  background-color: #fff;
  transition: background-color 0.15s linear;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.cs-reviews--load-more .cs-reviews__button:hover:before, .cs-reviews--load-more .cs-reviews__button:hover:after {
  background-color: #888;
}
.cs-reviews--load-more .cs-reviews__button[aria-expanded=true]:before, .cs-reviews--load-more .cs-reviews__button[aria-expanded=true]:after {
  background-color: #888;
}
.cs-reviews--load-more .cs-reviews__button:before {
  transform: rotate(45deg) translate3d(0, 0, 0);
  right: calc( 1.5rem + 1.2rem - 0.4rem );
}
.cs-reviews--load-more .cs-reviews__button:after {
  transform: rotate(-45deg) translate3d(0, 0, 0);
  right: 1.6rem;
}
.cs-reviews--load-more .cs-reviews__button:hover:after, .cs-reviews--load-more .cs-reviews__button:hover:before {
  color: #fff;
}
.cs-reviews--load-more .cs-reviews__button span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
}
.cs-reviews--load-more .cs-reviews__button .count {
  display: inline-flex;
  padding-left: 0.5rem;
}
.cs-reviews--load-more .cs-reviews__button .count:before {
  content: "(";
}
.cs-reviews--load-more .cs-reviews__button .count:after {
  content: ")";
}
.cs-reviews--load-more .cs-reviews__button .loading-mask {
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: url("../images/spinner.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 2.5rem 2.5rem;
}
.cs-reviews--load-more .cs-reviews__button .loading-mask img {
  display: none;
}
.cs-reviews--load-more .cs-reviews__count {
  color: #696969;
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * @see https://www.w3.org/WAI/WCAG21/Techniques/css/C40 for reference
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-stack-nav__trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  background-color: #f4f4f4;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 700;
}
@media (min-width: 48em) {
  .cs-stack-nav__trigger {
    display: none;
  }
}
.cs-stack-nav__trigger-icon {
  margin-left: 1.5rem;
  width: 6px;
  height: 10px;
  fill: #888;
  transform: rotate(90deg);
  transition: transform 0.3s;
}
.cs-stack-nav__trigger[aria-expanded=true] .cs-stack-nav__trigger-icon {
  transform: rotate(-90deg);
}
@media (max-width: 47.99em) {
  .cs-stack-nav__content {
    background-color: #f4f4f4;
  }
}
@media (min-width: 48em) {
  .cs-stack-nav__content {
    border-radius: 0px;
    background-color: #fff;
    box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
    padding: 2rem 0;
  }
}
.cs-stack-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cs-stack-nav__list > svg,
.cs-stack-nav__list > img {
  display: none;
}
@media (max-width: 47.99em) {
  .cs-stack-nav__nav--collapsible {
    display: none;
  }
  .cs-stack-nav__trigger[aria-expanded=true] .cs-stack-nav__nav--collapsible {
    display: block;
  }
}
@media (min-width: 48em) {
  .cs-stack-nav__nav--collapsible {
    display: block;
  }
}
.cs-stack-nav__nav .cs-stack-nav__list li {
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
}
.cs-stack-nav__nav .cs-stack-nav__list li:has(a:focus) {
  overflow: visible;
}
.cs-stack-nav__nav .cs-stack-nav__list li a,
.cs-stack-nav__nav .cs-stack-nav__list li strong {
  font-size: 1.4rem;
  font-weight: 300;
  color: #696969;
  border-left: none;
  padding: 0.75rem 1.5rem;
  display: block;
  margin-bottom: 0.1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (min-width: 48em) {
  .cs-stack-nav__nav .cs-stack-nav__list li a,
.cs-stack-nav__nav .cs-stack-nav__list li strong {
    padding: 0.5rem 1.8rem 0.5rem 2.5rem;
  }
}
.cs-stack-nav__nav .cs-stack-nav__list li a svg,
.cs-stack-nav__nav .cs-stack-nav__list li a img,
.cs-stack-nav__nav .cs-stack-nav__list li strong svg,
.cs-stack-nav__nav .cs-stack-nav__list li strong img {
  width: 2rem;
  height: 1.4rem;
  margin-left: 0.3rem;
  transform: translateY(0.1rem);
}
.cs-stack-nav__nav .cs-stack-nav__list li a:hover {
  background-color: #dcdcdc;
  color: #212121;
}
@media (min-width: 48em) {
  .cs-stack-nav__nav .cs-stack-nav__list li a:hover {
    background-color: #f4f4f4;
  }
}
.cs-stack-nav__nav .cs-stack-nav__list li a:focus {
  outline: 2px solid #f9f9f9;
  outline-offset: 0;
  box-shadow: 0 0 0 4px #193146;
}
.cs-stack-nav__nav .cs-stack-nav__list li.current strong {
  position: relative;
  border-left: none;
  border-color: transparent;
  font-weight: 700;
  color: #212121;
}
.cs-stack-nav__nav .cs-stack-nav__list li.current strong:hover {
  color: #212121;
}
.cs-stack-nav__nav .cs-stack-nav__list li.current strong:before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  display: block;
  width: 0.5rem;
  height: 100%;
  background: #000;
}
.cs-stack-nav__nav .item .delimiter {
  border-top: 1px solid #dcdcdc;
  display: block;
  margin: 1rem 1.8rem;
}
.cs-stack-nav__nav .cs-stack-nav__list li.current a {
  padding: 0;
  margin-bottom: 0;
}
@media (min-width: 48em) {
  .cs-stack-nav__nav {
    display: block;
    position: relative;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-sticky-block {
  box-sizing: border-box;
}
@media (min-width: 64em) {
  .cs-sticky-block {
    position: sticky;
    z-index: 10;
    top: 1em;
  }
}
@media (min-width: 48em) {
  .cs-sticky-block--pdp {
    position: relative;
    z-index: 3;
    margin-right: calc(15px - 0.5rem);
  }
  .page-product-bundle .cs-sticky-block--pdp {
    margin-right: 0;
  }
}
@media (min-width: 64em) {
  .cs-sticky-block--pdp {
    top: 3rem;
    margin-right: 15px;
  }
  .page-product-bundle .cs-sticky-block--pdp {
    margin-right: 0;
  }
}
@media screen and (min-width: 1230px) {
  .cs-sticky-block--pdp {
    margin-right: 0;
  }
}
@media (min-width: 48em) {
  .cs-sticky-block--no-mobile {
    position: sticky;
    top: 8.5rem;
  }
}
@media (min-width: 64em) {
  .cs-sticky-block--no-mobile {
    top: 1.5rem;
  }
}
/** Styles form _tables.less of theme blank are moved here.
   * For some tables there is mobile layout applied also for tablet resolutions
   * Variables for typograpy, colors, border etc. are added
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable no-descending-specificity */
.table-wrapper {
  margin-bottom: 2rem;
}
@media (max-width: 47.99em) {
  .table-wrapper {
    border: none;
    display: block;
  }
}
@media (min-width: 48em) {
  .table-wrapper.cart .table-wrapper.cart {
    border-top: none;
  }
}
.table-wrapper.grouped tbody:last-child td {
  border-bottom: none;
}

.table {
  border-bottom: 1px solid #dcdcdc;
  max-width: 100%;
  width: 100%;
  background: transparent;
}
.table > caption {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}
.table:not(.totals):not(.table-totals) {
  border: none;
}
.table:not(.totals):not(.table-totals) td {
  border: none;
  padding: 0.8rem 1rem;
}
.table:not(.totals):not(.table-totals) thead {
  border-bottom: 2px solid #dcdcdc;
}
.table:not(.totals):not(.table-totals) thead th {
  font-size: 1.1rem;
  text-transform: uppercase;
  color: #212121;
}
.table:not(.totals):not(.table-totals) tbody td {
  font-size: 1.4rem;
  color: #212121;
  font-weight: 300;
  border-bottom: 1px solid #dcdcdc;
  border-left: none;
}
@media (max-width: 47.99em) {
  .table:not(.totals):not(.table-totals) tbody td.actions {
    border-bottom: 1px solid #dcdcdc;
  }
}
.table:not(.totals):not(.table-totals) tbody td.actions a + a:before {
  margin: 0 0.7rem 0 0.5rem;
  content: "";
  display: inline-block;
  width: 1px;
  height: 1.4rem;
  border-right: 2px solid #dcdcdc;
  vertical-align: middle;
}
.table:not(.totals):not(.table-totals) tbody td:first-child {
  border-left: none;
}
@media (max-width: 63.99em) {
  .account .table:not(.totals):not(.table-totals) tbody tr:first-child td {
    padding-top: 0;
  }
}
.table:not(.totals):not(.table-totals) tbody tr:nth-child(even) {
  background: transparent;
}
.table:not(.totals):not(.table-totals) tfoot {
  font-size: 1.4rem;
}
@media (max-width: 47.99em) {
  .table:not(.totals):not(.table-totals) tfoot {
    background: #f4f4f4;
  }
}
.table:not(.totals):not(.table-totals) tfoot .mark {
  text-align: right;
}
@media (max-width: 47.99em) {
  .table:not(.totals):not(.table-totals) tfoot .amount {
    text-align: right;
  }
}
.table .price-excluding-tax,
.table .price-including-tax,
.table .items-qty,
.table .product-item-name {
  font-size: 1.4rem;
  line-height: inherit;
}

@media (max-width: 47.99em) {
  .table-wrapper {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    position: relative;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) {
    border: none;
    font-size: 1.4rem;
    padding: 0;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals):last-child {
    padding-bottom: 1.2rem;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) thead {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td {
    border: none;
    display: block;
    font-size: 1.4rem;
    padding: 0.2rem;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:first-child {
    padding-top: 2rem;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:last-child {
    padding-bottom: 1rem;
  }
}
@media (max-width: 47.99em) and (max-width: 63.99em) {
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:before {
    padding-right: 10px;
    content: attr(data-th) ": ";
    display: inline-block;
    color: #212121;
    font-weight: 700;
    vertical-align: top;
  }
}
@media (max-width: 47.99em) and (max-width: 63.99em) {
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions {
    border-bottom: 1px solid #dcdcdc;
  }
}
@media (max-width: 47.99em) and (max-width: 63.99em) {
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions:before {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
}
@media (max-width: 47.99em) {
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot {
    display: block;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot th {
    box-sizing: border-box;
    float: left;
    padding-left: 0;
    padding-right: 0;
    text-align: left;
    width: 70%;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot td {
    box-sizing: border-box;
    float: left;
    padding-left: 0;
    padding-right: 0;
    text-align: right;
    width: 30%;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr {
    display: block;
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child th,
.table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child td {
    padding-top: 2rem;
  }
}
@media (max-width: 47.99em) {
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody th {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
  .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody td:last-child {
    border: none;
    padding: 0 0 0.5rem;
  }
}
@media (max-width: 47.99em) {
  .data-table-definition-list thead {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
  .data-table-definition-list tbody th {
    padding-bottom: 0;
  }
  .data-table-definition-list tbody th,
.data-table-definition-list tbody td {
    display: block;
    padding-left: 0;
    padding-right: 0;
  }
}
.table-wrapper.cart,
.account .table-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  position: relative;
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .table-wrapper.cart .table,
.account .table-wrapper .table {
    border: none;
    font-size: 1.4rem;
    padding: 0;
  }
  .table-wrapper.cart .table:last-child,
.account .table-wrapper .table:last-child {
    padding-bottom: 1.2rem;
  }
  .table-wrapper.cart .table thead,
.account .table-wrapper .table thead {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
  .table-wrapper.cart .table tbody td,
.account .table-wrapper .table tbody td {
    border: none;
    display: block;
    font-size: 1.4rem;
    padding: 0.2rem;
  }
  .table-wrapper.cart .table tbody td:first-child,
.account .table-wrapper .table tbody td:first-child {
    padding-top: 2rem;
  }
  .table-wrapper.cart .table tbody td:last-child,
.account .table-wrapper .table tbody td:last-child {
    padding-bottom: 1rem;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
  .table-wrapper.cart .table tbody td:before,
.account .table-wrapper .table tbody td:before {
    padding-right: 10px;
    content: attr(data-th) ": ";
    display: inline-block;
    color: #212121;
    font-weight: 700;
    vertical-align: top;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
  .table-wrapper.cart .table tbody td.actions,
.account .table-wrapper .table tbody td.actions {
    border-bottom: 1px solid #dcdcdc;
  }
}
@media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
  .table-wrapper.cart .table tbody td.actions:before,
.account .table-wrapper .table tbody td.actions:before {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .table-wrapper.cart .table tfoot,
.account .table-wrapper .table tfoot {
    display: block;
  }
  .table-wrapper.cart .table tfoot th,
.account .table-wrapper .table tfoot th {
    box-sizing: border-box;
    float: left;
    padding-left: 0;
    padding-right: 0;
    text-align: left;
    width: 70%;
  }
  .table-wrapper.cart .table tfoot td,
.account .table-wrapper .table tfoot td {
    box-sizing: border-box;
    float: left;
    padding-left: 0;
    padding-right: 0;
    text-align: right;
    width: 30%;
  }
  .table-wrapper.cart .table tfoot tr,
.account .table-wrapper .table tfoot tr {
    display: block;
  }
  .table-wrapper.cart .table tfoot tr:first-child th,
.table-wrapper.cart .table tfoot tr:first-child td,
.account .table-wrapper .table tfoot tr:first-child th,
.account .table-wrapper .table tfoot tr:first-child td {
    padding-top: 2rem;
  }
}

/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-toolbar {
  font-size: 1.2rem;
  font-weight: inherit;
  text-transform: none;
}
@media (min-width: 48em) {
  .cs-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap !important;
  }
}
.cs-toolbar__item {
  margin: 0;
}
@media (min-width: 48em) {
  .cs-toolbar__item {
    margin: 0;
    padding: 0;
  }
  .cs-toolbar__item:first-child {
    padding-left: 0;
  }
  .cs-toolbar__item:last-child {
    padding-right: 0;
  }
}
@media (min-width: 64em) {
  .cs-toolbar__item--pagination {
    margin-left: auto;
  }
}
.cs-toolbar__item--limiter {
  display: flex;
  align-items: center;
}
.cs-toolbar__item--offcanvas {
  margin-right: 3rem;
  z-index: 1;
}
.cs-toolbar .field .label {
  font-weight: inherit;
  width: auto;
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-toolbar .cs-html-select {
    max-width: 20rem;
  }
}
.cs-toolbar .cs-html-select__trigger {
  min-height: 3.5rem;
}
.cs-toolbar__filters-button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
}
.cs-toolbar__filters-button::before, .cs-toolbar__filters-button::after {
  content: none;
}
.cs-toolbar__filters-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}
.cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
  cursor: pointer;
  border-radius: 0px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #000000;
  color: #000000;
  background-color: #fff;
}
.cs-toolbar__filters-button *, .cs-toolbar__filters-button:visited * {
  color: #000000;
  fill: #000000;
}
.cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]) {
  box-shadow: none;
  outline: none;
  text-decoration: none;
  border: 1px solid #666;
  color: #fff;
  background-color: #666;
}
.cs-toolbar__filters-button:hover:not([disabled]) *, .cs-toolbar__filters-button:focus:not([disabled]) *, .cs-toolbar__filters-button:active:not([disabled]) * {
  color: #fff;
  fill: #fff;
}
.cs-toolbar__filters-button[disabled] {
  opacity: 0.65;
  cursor: auto;
}
.cs-toolbar__filters-button svg {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-left: 0;
  left: 0.75em;
  max-width: 2.3rem;
  max-height: 2.3rem;
}
.cs-toolbar__filters-button-label {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-right: 0;
  padding-left: 3.75em;
}

.toolbar-amount {
  margin: 0;
  white-space: nowrap;
}

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-sorter {
  display: flex;
  align-items: center;
}
.cs-sorter__label {
  padding: 0 1rem 0 0;
  white-space: nowrap;
}
.cs-sorter__select {
  border: none !important;
  margin: 0px !important;
}
@media (min-width: 64em) {
  .cs-sorter__select {
    max-width: 18rem;
  }
}

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-limiter {
  display: flex;
  position: relative;
  margin: 0 1rem 0 0;
  align-items: center;
  flex-wrap: nowrap;
}
.cs-limiter__label, .field .cs-limiter__label {
  white-space: nowrap;
}
.cs-limiter__label--prefix, .field .cs-limiter__label--prefix {
  padding: 0 1rem 0 1rem;
}
.cs-limiter__label--suffix, .field .cs-limiter__label--suffix {
  padding: 0 0 0 1rem;
}
.cs-limiter__pagination {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: stretch;
}
.cs-limiter__pagination-item {
  border: none !important;
  margin: 0;
  padding: 0;
  border: 1px solid #dcdcdc;
  text-align: center;
  margin-left: -1px;
  overflow: hidden;
}
.cs-limiter__pagination-item:first-child {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.cs-limiter__pagination-item:last-child {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
.cs-limiter__pagination-number {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 3.5rem;
  min-height: 3.5rem;
  border: 0;
  margin: 0;
  padding: 0.3em;
  background: #fff;
  cursor: pointer;
  line-height: 1;
  font-size: 1.2rem;
  font-weight: 400;
  transition: color 0.15s linear;
}
.cs-limiter__pagination-number, .cs-limiter__pagination-number:visited {
  color: #696969;
  text-decoration: none;
}
.cs-limiter__pagination-number:hover, .cs-limiter__pagination-number:focus, .cs-limiter__pagination-number:active {
  border: 0;
  color: #212121;
  background: inherit;
  text-decoration: inherit;
}
.cs-limiter__pagination-item--current .cs-limiter__pagination-number {
  background-color: transparent !important;
}
.cs-limiter__pagination-item--current .cs-limiter__pagination-number, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:hover, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:focus, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:active {
  color: #000000;
  background: #f4f4f4;
  cursor: default;
}
.cs-limiter .cs-html-select,
.cs-limiter .cs-html-select__trigger,
.cs-limiter select {
  min-width: 3rem;
  min-height: 3.5rem;
}

.cs-dashboard .limiter-label,
.cs-dashboard .limiter-text {
  font-weight: 400;
  font-size: 1.4rem;
  margin-right: 0.5rem;
}
.cs-dashboard .limiter-text {
  white-space: nowrap;
}
.cs-dashboard .limiter-options {
  margin-right: 0.5rem;
}

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-pagination {
  /**
   * Input mode
   */
  /**
   * Bullet points mode
   */
}
.cs-pagination__content {
  display: flex;
  align-items: center;
}
.cs-pagination__prefix-label {
  margin: 0;
  padding: 0 1rem 0 0;
}
.cs-pagination__page-provider {
  display: flex;
  flex-wrap: nowrap !important;
  white-space: nowrap;
  align-items: center;
  width: auto;
}
.cs-pagination__page-provider-input.input-text {
  border: none !important;
  margin: 0;
  max-height: 3.5rem;
  width: 4.5em;
  text-align: center;
  font-size: 0.85em;
}
.cs-pagination__page-provider-label {
  padding-left: 1rem;
  width: auto !important;
}
.cs-pagination__items {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: stretch;
}
.cs-pagination__item {
  margin: 0;
  padding: 0;
  border: 1px solid #dcdcdc;
  text-align: center;
  margin-left: -1px;
  overflow: hidden;
}
.cs-pagination__item:first-child {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.cs-pagination__item:last-child {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
.cs-pagination__number {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 3.5rem;
  min-height: 3.5rem;
  border: 0;
  margin: 0;
  padding: 0.3em;
  background: #fff;
  cursor: pointer;
  line-height: 1;
  font-size: 1.2rem;
  font-weight: 400;
  transition: color 0.15s linear;
}
.cs-pagination__number, .cs-pagination__number:visited {
  color: #696969;
  text-decoration: none;
}
.cs-pagination__number:hover, .cs-pagination__number:focus, .cs-pagination__number:active {
  border: 0;
  color: #212121;
  background: inherit;
  text-decoration: inherit;
}
.cs-pagination__item--current .cs-pagination__number, .cs-pagination__item--current .cs-pagination__number:hover, .cs-pagination__item--current .cs-pagination__number:focus, .cs-pagination__item--current .cs-pagination__number:active {
  color: #000000;
  background: #f4f4f4;
  cursor: default;
}
.cs-pagination__prev {
  margin-right: 1.5rem;
}
.cs-pagination__next {
  margin-left: 1.5rem;
}
.cs-pagination__action {
  display: flex;
  min-width: 3.5rem;
  min-height: 3.5rem;
  align-items: center;
  justify-content: center;
}
.cs-pagination__action-icon {
  width: 1.3rem;
  height: 2.4rem;
  fill: #000000;
  transition: fill 0.15s linear;
}
.cs-pagination__action--disabled .cs-pagination__action-icon {
  fill: #dcdcdc;
}
.cs-pagination__action:not(.cs-pagination__action--disabled):hover .cs-pagination__action-icon, .cs-pagination__action:not(.cs-pagination__action--disabled):focus .cs-pagination__action-icon, .cs-pagination__action:not(.cs-pagination__action--disabled):active .cs-pagination__action-icon {
  fill: #142b9e;
}

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-viewmode-switcher {
  display: flex;
  align-items: center;
}
.cs-viewmode-switcher__label {
  margin: 0;
  padding: 0 1rem 0 0;
}
.cs-viewmode-switcher__modes {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: stretch;
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem;
  }
}
.cs-viewmode-switcher__mode {
  margin: 0;
  padding: 0;
  border: 1px solid #dcdcdc;
  text-align: center;
  margin-left: -1px;
  overflow: hidden;
}
.cs-viewmode-switcher__mode:first-child {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.cs-viewmode-switcher__mode:last-child {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
.cs-viewmode-switcher__mode-action {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 3.5rem;
  min-height: 3.5rem;
  border: 0;
  margin: 0;
  padding: 0.3em;
  background: #fff;
  cursor: pointer;
  line-height: 1;
  font-size: 1.2rem;
  font-weight: 400;
  transition: color 0.15s linear;
  height: 100%;
  padding-left: 0.7em;
  padding-right: 0.7em;
}
.cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
  color: #696969;
  text-decoration: none;
}
.cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
  border: 0;
  color: #212121;
  background: inherit;
  text-decoration: inherit;
}
.cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
  color: #000000;
  background: #f4f4f4;
  cursor: default;
}
.cs-viewmode-switcher__mode-icon {
  fill: currentColor;
}
.cs-viewmode-switcher__mode-icon--grid {
  width: 1.5rem;
  height: 1.1rem;
}
.cs-viewmode-switcher__mode-icon--list {
  width: 1.5rem;
  height: 1.1rem;
}
.cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon {
  fill: #000000;
}
.cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
  padding-left: 0.7rem;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2N1c3RvbWVyLmNzcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbmZpZy9icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZm9jdXMtaW5kaWNhdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29uZmlnL2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9mb250LWZhbWlseS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL01hZ2VudG9fVGhlbWUvd2ViL2Nzcy9zb3VyY2UvX2xheW91dC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL01hZ2VudG9fQ3VzdG9tZXIvd2ViL2Nzcy9zb3VyY2UvbW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9wYWdpbmF0aW9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2FkZHRvY2FydC9hZGR0b2NhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2FuaW1hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYXV0aG9yaXphdGlvbi1saW5rL2F1dGhvcml6YXRpb24tbGluay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2JhZGdlL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9iYWRnZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvcmVzZXQtbGlzdC1zdHlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jb29raWUtbWVzc2FnZS9jb29raWUtbWVzc2FnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGFpbHlkZWFsL2RhaWx5ZGVhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGlzcGxheS1jb250cm9sbGVyL2Rpc3BsYXktY29udHJvbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9kcm9wZG93bi1zd2l0Y2hlci9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZmllbGQvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZmllbGQvZmllbGQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1saW5rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZ29vZ2xlLXJlY2FwdGNoYS9nb29nbGUtcmVjYXB0Y2hhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9ncmlkLWxheW91dC9ncmlkLWxheW91dC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3BvbHktZmx1aWQtc2l6aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci9zZWFyY2gvc2VhcmNoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9xdHktY291bnRlci9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL2hlYWRsaW5lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGxpbmUvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2xhenlsb2FkL2xhenlsb2FkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9saW5rcy1ibG9jay1hZGR0by9saW5rcy1ibG9jay1hZGR0by5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9tZXNzYWdlcy9tZXNzYWdlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbWluaWNhcnQtcHJvZHVjdC9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvaGlkZS1zY3JvbGxiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2FzcGVjdC1yYXRpby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbmV3c2xldHRlci9uZXdzbGV0dGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtbmF2aWdhdGlvbi9vZmZjYW52YXMtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvb2ZmY2FudmFzLXRvZ2dsZS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMvb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLWJvdHRvbS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC9wcmljZS1ib3guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3N0cmluZy10by1udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXRpbGUvcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wcm9kdWN0cy1saXN0L3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3F0eS1pbmNyZW1lbnQvcXR5LWluY3JlbWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc2tpcC1saW5rcy9za2lwLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zbGlkZXIvc2xpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zb2NpYWwtbWVkaWEtbGlzdC9zb2NpYWwtbWVkaWEtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9zd2F0Y2hlcy9zd2F0Y2hlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy92aWRlby10ZWFzZXIvdmlkZW8tdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9wcm9kdWN0LXZpZGVvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2Jsb2cuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vY3VzdG9tLW1vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2N1c3RvbS1zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vaG9tZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9wcmljZS1kaXNwbGF5LW1vZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9rYXNhLXdyYWNhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2Ntcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9jaGVja291dC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9sYW5kaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3BybWEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2ltYWdlLXRlYXNlci9pbWFnZS10ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2ltYWdlLXRlYXNlci9taXhpbnMvY29udHJhc3Qtb3B0aW1pemVycy9ncmFkaWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvaW1hZ2UtdGVhc2VyL21peGlucy9jb250cmFzdC1vcHRpbWl6ZXJzL3RleHQtc2hhZG93LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wcm9kdWN0cy1jYXJvdXNlbC9wcm9kdWN0cy1jYXJvdXNlbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcGFyYWdyYXBoL3BhcmFncmFwaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc2VwYXJhdG9yL3NlcGFyYXRvci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NhcHRjaGEvY2FwdGNoYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGFzaGJvYXJkL2Rhc2hib2FyZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3BhZ2VzL2xheW91dC8yY29sdW1ucy1sZWZ0L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9mb3JtL2Zvcm0uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyL3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcmV2aWV3L3Jldmlldy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcmV2aWV3cy1zdW1tYXJ5L3Jldmlld3Mtc3VtbWFyeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Jldmlld3MvcmV2aWV3cy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3RhY2stbmF2L3N0YWNrLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3RpY2t5LWJsb2NrL3N0aWNreS1ibG9jay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3RpY2t5LWJsb2NrL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdGFibGUvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdGFibGUvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvYW1vdW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9zb3J0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvaG9va3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL2xpbWl0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90b29sYmFyL3ZpZXdtb2RlLXN3aXRjaGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbi8vIEJyZWFrcG9pbnRzIGltcG9ydCBmcm9tIHZpZXcueG1sIFtweF1cbiRicmVha3BvaW50c19weDogZGVlcC1nZXQoJHZpZXcteG1sLCB2YXJzLCBNYWdlbnRvX1RoZW1lLCBicmVha3BvaW50cyk7XG4kYnJlYWtwb2ludHNfZW06ICgpO1xuXG5AZnVuY3Rpb24gY2FsY3VsYXRlLWJyZWFrcG9pbnRzKCRicmVha3BvaW50c19lbSwgJGJyZWFrcG9pbnRzX3B4KSB7XG4gICAgJHJlc3VsdDogJGJyZWFrcG9pbnRzX2VtO1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHNfcHgge1xuICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAkcmVzdWx0LFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIHVucXVvdGUoJGtleSk6ICR2YWx1ZSAvIDE2ICogMWVtLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5cbiRicmVha3BvaW50czogY2FsY3VsYXRlLWJyZWFrcG9pbnRzKCRicmVha3BvaW50c19lbSwgJGJyZWFrcG9pbnRzX3B4KSAhZGVmYXVsdDtcblxuLy8gcGhvbmU6IDIzLjEyNWVtIC0gMzcwcHhcbi8vIHBob25lTGc6IDMwZW0gLSA0ODBweCxcbi8vIHRhYmxldDogNDhlbSAtIDc2OHB4LFxuLy8gbGFwdG9wOiA2NGVtIC0gMTAyNHB4LFxuLy8gbGFwdG9wTGc6IDgwZW0gLSAxMjgwcHgsXG4vLyBkZXNrdG9wOiA5MGVtIC0gMTQ0MHB4LFxuLy8gdHY6IDEyMGVtIC0gMTkyMHB4LFxuIiwiLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQGZ1bmN0aW9uIGRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG1hcDtcbn1cbiIsIi8qKlxuICogQHNlZSBodHRwczovL3d3dy53My5vcmcvV0FJL1dDQUcyMS9UZWNobmlxdWVzL2Nzcy9DNDAgZm9yIHJlZmVyZW5jZVxuICovXG4kZm9jdXMtaW5kaWNhdG9yLW91dGxpbmUtd2lkdGg6IDJweDtcbiRmb2N1cy1pbmRpY2F0b3Itb3V0bGluZS1jb2xvcjogI2Y5ZjlmOTtcbiRmb2N1cy1pbmRpY2F0b3Itb3V0bGluZS1vZmZzZXQ6IDA7XG4kZm9jdXMtaW5kaWNhdG9yLWJveC1zaGFkb3c6IDAgMCAwIDRweCAjMTkzMTQ2O1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGZvY3VzLWluZGljYXRvci1ob29rKFxuICAgICRvdXRsaW5lLXdpZHRoLFxuICAgICRvdXRsaW5lLWNvbG9yLFxuICAgICRvdXRsaW5lLW9mZnNldCxcbiAgICAkYm94LXNoYWRvd1xuKSB7XG59XG5cbkBtaXhpbiBmb2N1cy1pbmRpY2F0b3IoXG4gICAgJG91dGxpbmUtd2lkdGg6ICRmb2N1cy1pbmRpY2F0b3Itb3V0bGluZS13aWR0aCxcbiAgICAkb3V0bGluZS1jb2xvcjogJGZvY3VzLWluZGljYXRvci1vdXRsaW5lLWNvbG9yLFxuICAgICRvdXRsaW5lLW9mZnNldDogJGZvY3VzLWluZGljYXRvci1vdXRsaW5lLW9mZnNldCxcbiAgICAkYm94LXNoYWRvdzogJGZvY3VzLWluZGljYXRvci1ib3gtc2hhZG93XG4pIHtcbiAgICBvdXRsaW5lOiAkb3V0bGluZS13aWR0aCBzb2xpZCAkb3V0bGluZS1jb2xvcjtcbiAgICBvdXRsaW5lLW9mZnNldDogJG91dGxpbmUtb2Zmc2V0O1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuXG4gICAgQGluY2x1ZGUgZm9jdXMtaW5kaWNhdG9yLWhvb2soXG4gICAgICAgICRvdXRsaW5lLXdpZHRoLFxuICAgICAgICAkb3V0bGluZS1jb2xvcixcbiAgICAgICAgJG91dGxpbmUtb2Zmc2V0LFxuICAgICAgICAkYm94LXNoYWRvd1xuICAgICk7XG59XG5cbkBtaXhpbiBmb2N1cy1pbmRpY2F0b3ItcmVzZXQge1xuICAgIG91dGxpbmU6IHVuc2V0O1xuICAgIGJveC1zaGFkb3c6IHVuc2V0O1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9mb250LWZhbWlseSc7XG5AaW1wb3J0ICd1dGlscy9mb2N1cy1pbmRpY2F0b3InO1xuXG4kaW5wdXRfcmVtb3ZlLW51bWJlci1hcHBlYXJhbmNlOiB0cnVlICFkZWZhdWx0O1xuJGlucHV0X3JlbW92ZS1zZWFyY2gtYXBwZWFyYW5jZTogdHJ1ZSAhZGVmYXVsdDtcblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6IDYyLjUlO1xuICAgIGJhY2tncm91bmQ6ICRwYWdlX2JhY2tncm91bmQ7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyAvLyBoaWRlcyBob3Jpem9udGFsIHNjcm9sbGJhciBvbiBFZGdlIGFuZCBJRVxuICAgIGhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYW1pbHkoJGZvbnRfZmFtaWx5LXByaW1hcnkpO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbn1cblxuLl9rZXlmb2N1cyAqOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1pbmRpY2F0b3IoKTtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi8qIEhpZGUgSFRNTDUgVXAgYW5kIERvd24gYXJyb3dzLiAqL1xuQGlmICRpbnB1dF9yZW1vdmUtbnVtYmVyLWFwcGVhcmFuY2Uge1xuICAgIGlucHV0W3R5cGU9J251bWJlciddIHtcbiAgICAgICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBIaWRlIEhUTUw1ICdYJyBpbiBzZWFyY2ggaW5wdXQgKi9cbkBpZiAkaW5wdXRfcmVtb3ZlLXNlYXJjaC1hcHBlYXJhbmNlIHtcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgICAgIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gSW50ZXJuZXQgRXhwbG9yZXIgKi9cbiAgICAgICAgJjo6LW1zLWNsZWFyLFxuICAgICAgICAmOjotbXMtcmV2ZWFsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gQ2hyb21lICovXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxvYWRpbmctbWFzayB7XG4gICAgJltkYXRhLXJvbGU9J21haW4tY3NzLWxvYWRlciddIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG5AbWl4aW4gZm9udC1mYW1pbHkoJGZvbnRzLi4uKSB7XG4gICAgQGlmICRmb250cyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udHMsICRmb250LWZhbWlseS1mYWxsYmFjaztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1mYWxsYmFjaztcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cblxuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuQG1peGluIGNvbnRhaW5lcigkaG9yaXpvbnRhbC1wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlcikge1xuICAgIHBhZGRpbmctbGVmdDogJGhvcml6b250YWwtcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xufVxuXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbkBtaXhpbiBjb250YWluZXItbmVnYXRlZCgkaG9yaXpvbnRhbC1wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlcikge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICBtYXJnaW4tbGVmdDogLSRob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGhvcml6b250YWwtcGFkZGluZztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuQG1peGluIGNvbnRhaW5lci13cmFwcGVyKCRtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aCkge1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogNjclO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZS10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZycpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbm9zY3JvbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICYtLW9udG9wIHtcbiAgICAgICAgei1pbmRleDogMzAxO1xuICAgIH1cblxuICAgICYtLXZpZXdwb3J0LXdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYtLW5vLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJi0tdXNlLXdob2xlLXNjcmVlbiB7XG4gICAgICAgICN7JHJvb3R9X19pbm5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jbXMtcGFnZS12aWV3LnBhZ2UtbGF5b3V0LTFjb2x1bW4ge1xuICAgICNtYWluY29udGVudCB7XG4gICAgICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLmNzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgbWF4LXdpZHRoOiAxODByZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLWNvbnRhaW5lcl9faW5uZXI6YmVmb3JlLCAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cbi5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgIHdpZHRoOiAzMiU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG59XG4uY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gIHdpZHRoOiA1NiU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogNjUlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDY3JTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICB9XG59XG4uY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxufVxuLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIH1cbn1cbi5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jcy1jb250YWluZXItLW9udG9wIHtcbiAgei1pbmRleDogMzAxO1xufVxuLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4uY3MtY29udGFpbmVyLS1uby1wYWRkaW5nIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmNzLWNvbnRhaW5lci0tdXNlLXdob2xlLXNjcmVlbiAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNtcy1wYWdlLXZpZXcucGFnZS1sYXlvdXQtMWNvbHVtbiAjbWFpbmNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDE4MHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5ib2R5LFxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbn1cblxuLm5vLXNjcm9sbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4ubm8tc2Nyb2xsLWNoaWxkIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbiNtYWluY29udGVudCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xufVxuXG4ucGFnZS13cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYWdlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDRyZW0gMCAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICBwYWRkaW5nOiA0cmVtIDAgMDtcbiAgfVxufVxuXG4uY21zLWhvbWUgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgcGFkZGluZzogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jbXMtaG9tZSAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtMWNvbHVtbiAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5zaWRlYmFyLW1haW4sXG4ucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICB3aWR0aDogMjIuNSU7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZjRmNGY0O1xuICB9XG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5jb2x1bW5zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuY29sdW1uLm1haW4ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1tYWluIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuYSwgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5naWZ0LW9wdGlvbnMtY2FydC1pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBheXBhbC1leHByZXNzLXJldmlldyAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAucGF5cGFsLXJldmlldy52aWV3IC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGF5cGFsLXJldmlldy52aWV3IC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICB9XG59XG5cbi5wYXlwYWwtZXhwcmVzcy1pbi1jb250ZXh0LW1pbmktY2FydC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGhlYWRsaW5lX2hvb2soJGxldmVsKSB7XG59XG5cbkBtaXhpbiBsaW5rX2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0X2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW1faG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L2hvb2snO1xuQGltcG9ydCAndXRpbHMvZm9udC1mYW1pbHknO1xuXG4kdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LWZhbWlseTogJGZvbnRfZmFtaWx5LXByaW1hcnkgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS1tYXJnaW5zOiAxcmVtIDAgMnJlbSAhZGVmYXVsdDtcblxuJHR5cG9ncmFwaHlfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saW5rLS1ob3Zlci10ZXh0LWRlY29yYXRpb246ICR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kdHlwb2dyYXBoeV9saXN0LW1hcmdpbjogMCAwIDIuNXJlbSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpc3QtcGFkZGluZzogMCAwIDAgNHJlbSAhZGVmYXVsdDtcblxuJHR5cG9ncmFwaHlfbGlzdC1pdGVtLW1hcmdpbjogMCAwIDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMikge1xuICAgIEBpbmNsdWRlIGZvbnQtZmFtaWx5KCR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtZmFtaWx5KTtcblxuICAgIGZvbnQtc2l6ZTogJGxldmVsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHR5cG9ncmFwaHlfaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm07XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9oZWFkbGluZS1tYXJnaW5zO1xuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmVfaG9vaygkbGV2ZWwpO1xufVxuXG5AbWl4aW4gbGluayhcbiAgICAkY29sb3I6ICR0eXBvZ3JhcGh5X2xpbmstY29sb3IsXG4gICAgJGNvbG9yLWhvdmVyOiAkdHlwb2dyYXBoeV9saW5rLS1ob3Zlci1jb2xvcixcbiAgICAkZGVjb3JhdGlvbjogJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb24sXG4gICAgJGRlY29yYXRpb24taG92ZXI6ICR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLXRleHQtZGVjb3JhdGlvblxuKSB7XG4gICAgJixcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRkZWNvcmF0aW9uO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOnZpc2l0ZWQ6aG92ZXIsXG4gICAgJjp2aXNpdGVkOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5rX2hvb2soKTtcbn1cblxuQG1peGluIGxpc3QoKSB7XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9saXN0LW1hcmdpbjtcbiAgICBwYWRkaW5nOiAkdHlwb2dyYXBoeV9saXN0LXBhZGRpbmc7XG5cbiAgICBAaW5jbHVkZSBsaXN0X2hvb2soKTtcbn1cblxuQG1peGluIGxpc3QtaXRlbSgpIHtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2xpc3QtaXRlbS1tYXJnaW47XG5cbiAgICBAaW5jbHVkZSBsaXN0LWl0ZW1faG9vaygpO1xufVxuIiwiLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiAxICovXG59XG5cbkBtaXhpbiB2aXN1YWxseS12aXNpYmxlIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuIiwiLy8gU3R5bGVzIG1vdmVkIGZyb24gbWFnZW50byBibHNuayB0aGVtZTogTWFnZW50b19DdXN0b21lci93ZWIvY3NzL3NvdXJjZS9fbW9kdWxlLmxlc3Ncbi8vIGluIG9yZGVyIHRvIGhhdmUgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGVtIGFuZCBiZSBhYmxlIHRvIGltcG9ydCB0aGVtIG9ubHkgaW5zaWRlIGN1c3RvbWVyLnRzIGVudHJ5XG5cbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbi5sb2dpbi1jb250YWluZXIgLmJsb2NrLW5ldy1jdXN0b21lciAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG59XG5cbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOGU4ZTg7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XG59XG5cbi5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oYXNyZXF1aXJlZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogI2UwMmIyNztcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZm9ybS1hZGRyZXNzLWVkaXQgLnJlZ2lvbl9pZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tYWRkcmVzcy1lZGl0IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5IHtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbn1cblxuLmZvcm0tZWRpdC1hY2NvdW50IC5maWVsZHNldC5wYXNzd29yZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJveC1iaWxsaW5nLWFkZHJlc3MgLmJveC1jb250ZW50LFxuLmJveC1zaGlwcGluZy1hZGRyZXNzIC5ib3gtY29udGVudCxcbi5ib3gtaW5mb3JtYXRpb24gLmJveC1jb250ZW50LFxuLmJveC1uZXdzbGV0dGVyIC5ib3gtY29udGVudCB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG59XG5cbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZmllbGQucGFzc3dvcmQgLmNvbnRyb2wgLm1hZ2UtZXJyb3Ige1xuICAgIG9yZGVyOiAyO1xufVxuXG4uZmllbGQucGFzc3dvcmQgLmNvbnRyb2wgLmlucHV0LXRleHQge1xuICAgIG9yZGVyOiAwO1xuICAgIHotaW5kZXg6IDI7XG59XG5cbi5maWVsZHNldCAuZnVsbG5hbWUuZmllbGQge1xuICAgID4gLmxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuXG4gICAgICAgICsgLmNvbnRyb2wge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5maWVsZC5zdHJlZXQge1xuICAgIC5maWVsZCB7XG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250cm9sLmNhcHRjaGEtaW1hZ2Uge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluLFxuICAgIC5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAubG9naW4tY29udGFpbmVyIC5maWVsZHNldDphZnRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5mb3JtLnNlYXJjaC5hZHZhbmNlZCAuZmllbGQucHJpY2UgLndpdGgtYWRkb24gLmlucHV0LXRleHQge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAubG9naW4tY29udGFpbmVyIC5ibG9jayAubG9naW4gLmFjdGlvbnMtdG9vbGJhciA+IC5wcmltYXJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcmVtO1xuICAgIH1cblxuICAgIC5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5sb2dpbiAuYWN0aW9ucy10b29sYmFyID4gLnNlY29uZGFyeSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxNXB4IDAgMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAyNS44JTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0IC5mdWxsbmFtZSAuZmllbGQgLmNvbnRyb2wge1xuICAgICAgICB3aWR0aDogNzQuMiU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIHtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB3aWR0aDogNDguOCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtbGFzdC1jaGlsZCgxKSxcbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyLjQlO1xuICAgIH1cblxuICAgIC5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgICAgICAgbWFyZ2luOiAwIDFyZW0gMXJlbSAwO1xuICAgIH1cblxuICAgIC5kYXNoYm9hcmQtd2VsY29tZS10b2dnbGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbWl4aW4nO1xuXG4uI3skbnN9c2xpZGVyLW5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgIEBpbmNsdWRlIHNsaWRlci1uYXZpZ2F0aW9uKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvaG9va3MnO1xuXG4kdHJpZ2dlcl93aWR0aDogNC40cmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfaGVpZ2h0OiA1LjJyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlcl9lZGdlLW9mZnNldDogMS41cmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfYm9yZGVyOiAwICFkZWZhdWx0O1xuJHRyaWdnZXJfcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHRyaWdnZXJfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHRyaWdnZXJfc2hhZG93OiAxcHggMXB4IDJweCAwIHJnYmEoJGNvbG9yX2JsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbiR0cmlnZ2VyX3NoYWRvdy0taG92ZXI6IDFweCAxcHggMTBweCAwIHJnYmEoJGNvbG9yX2JsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7IC8vIGljb24gY29sb3IgaW5oZXJpdHNcbiR0cmlnZ2VyLS1kaXNhYmxlZC1vcGFjaXR5OiAwLjI1ICFkZWZhdWx0O1xuJHRyaWdnZXItLWRpc2FibGVkLWdyYXlvdXQ6IHRydWUgIWRlZmF1bHQ7XG5cbiR0cmlnZ2VyLWljb25fd2lkdGg6IDEuNHJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyLWljb25faGVpZ2h0OiAyLjdyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBzbGlkZXItbmF2aWdhdGlvbigpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6ICR0cmlnZ2VyX3dpZHRoO1xuICAgIGhlaWdodDogJHRyaWdnZXJfaGVpZ2h0O1xuICAgIGJvcmRlcjogJHRyaWdnZXJfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICR0cmlnZ2VyX3JhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkdHJpZ2dlcl9iYWNrZ3JvdW5kO1xuICAgIGJveC1zaGFkb3c6ICR0cmlnZ2VyX3NoYWRvdztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkdHJpZ2dlcl9jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZTtcblxuICAgICYtLXByZXYge1xuICAgICAgICBsZWZ0OiAkdHJpZ2dlcl9lZGdlLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6ICR0cmlnZ2VyX2VkZ2Utb2Zmc2V0O1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJHRyaWdnZXItLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgQGlmICgkdHJpZ2dlci0tZGlzYWJsZWQtZ3JheW91dCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoW2Rpc2FibGVkXSk6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAkdHJpZ2dlcl9zaGFkb3ctLWhvdmVyO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJHRyaWdnZXItaWNvbl93aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkdHJpZ2dlci1pY29uX2hlaWdodDtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1uYXZpZ2F0aW9uLWhvb2soKTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vbWl4aW4nO1xuXG4uI3skbnN9c2xpZGVyLXBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1wYWdpbmF0aW9uKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXRzLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZzogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZy0tY3VycmVudDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG5cbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtd2lkdGg6IDIuMnJlbSAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtaGVpZ2h0OiAwLjlyZW0gIWRlZmF1bHQ7XG5cbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2ZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2N1cnJlbnQtY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuXG5AbWl4aW4gc2xpZGVyLXBhZ2luYXRpb24oKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXRzLWdhcDtcbiAgICBtaW4taGVpZ2h0OiAzcmVtO1xuXG4gICAgJi0tZnJhY3Rpb24ge1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2ZvbnQtd2VpZ2h0O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY3VycmVudC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1bGxldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmc7XG4gICAgICAgIGJvcmRlcjogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1ib3JkZXI7XG4gICAgICAgIGlubGluZS1zaXplOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXdpZHRoO1xuICAgICAgICBibG9jay1zaXplOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWhlaWdodDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5cmVtO1xuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnLS1jdXJyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItcGFnaW5hdGlvbi1ob29rKCk7XG59XG4iLCIvKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cblxuQGZ1bmN0aW9uIGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlLCAkc2lkZSkge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdmFyaWFibGUpO1xuXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAndXAnKSBPUiAoJHNpZGUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnbGVmdCcpIE9SICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ2xlZnQnKSBPUiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ3VwJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDMpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSA0KSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ3VwJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDMpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgNCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGJ1dHRvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cblxuQG1peGluIGJ1dHRvbl9zcGFuLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuXG5AbWl4aW4gYnV0dG9uX2ljb24taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRhZGR0b2NhcnRfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbjogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXdpZHRoOiAyLjJyZW0gIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWhlaWdodDogJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24tZWRnZS1ndXR0ZXI6IDAuOGVtICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi1za2V3ZWQtYmFja2dyb3VuZC13aWR0aDogNS4xcmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1sZWZ0OiAxcmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1yaWdodDogNC41cmVtICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplOiAxMHB4ICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1wcmltYXJ5OiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1zZWNvbmRhcnk6ICRjb2xvcl9zdWNjZXNzLTYwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9hamF4LWZhaWwtYmctcHJpbWFyeTogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXNlY29uZGFyeTogJGNvbG9yX2Vycm9yLTYwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1maWxsOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvciAhZGVmYXVsdDtcblxuLiN7JG5zfWFkZHRvY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgLy8gYmVjYXVzZSBidXR0b24gY2FuJ3QgaGF2ZSBvdmVyZmxvdywgd2UgbmVlZCB0byBhZGQgaXQgb24gYnV0dG9uIHdyYXBwZXJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaWYgKCRidXR0b25fYm9yZGVyLXJhZGl1cyA+IDApIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kICRidXR0b25fYm9yZGVyLXJhZGl1cykpIHtcbiAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgJGJ1dHRvbl9ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhpZGUgdW5uZWNlc3NhcnkgYWRkIHRvIGNhcnQgYnV0dG9uIG9uIGRvd25sb2FkYWJsZSBwcm9kdWN0IHVwZGF0ZSBwZHBcbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnVwZGF0ZSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvblxuICAgICAgICApO1xuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgKiBBVEMgYnRuLiBpbiBidXlib3ggdXNlcyBkZWZlckFUQ0NsaWNrKClcbiAgICAgICAgICAgICAqIGFzIHBhcnQgb2YgdGhlIGBGYXN0ZXIgQWRkIFRvIENhcnRgIGVuYWhuY2VtZW50XG4gICAgICAgICAgICAgKiB0aGVyZWZvcmUgaXQncyBhcHBlYXJhbmNlIGlzIHNldCB0byBub3JtYWwgYWxsIHRoZSB0aW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19mYWlsLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX2ZhaWwtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uXG4gICAgICAgICk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fY29uZmlndXJlLWljb24sXG4gICAgJl9fYnV0dG9uLWljb24sXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRhZGR0b2NhcnRfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWhlaWdodDtcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgICAgICBAaWYgKCRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb24gPT0gJ3JpZ2h0Jykgb3IgKCRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb24gPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAjeyRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb259OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICB9XG5cbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAmX19sb2FkaW5nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemUgKiA0O1xuICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG5cbiAgICAgICAgJi1iYWxsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICAgICAgJi0tMSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tMiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMTVweDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTVzICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLTMge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mZWVkYmFjay1iZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTFlbTtcbiAgICAgICAgdG9wOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgYm90dG9tOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDIuNWVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjAxLCAwLjY1LCAwLjM4LCAxKTtcbiAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctc2Vjb25kYXJ5O1xuXG4gICAgICAgICN7JHJvb3R9LS1uby10cmFuc2l0aW9ucyAmIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZmFpbCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXNlY29uZGFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtbGFiZWwsXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAxLjcyNWVtO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICN7JGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1yaWdodCAtXG4gICAgICAgICAgICAkYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLWxlZnR9O1xuICAgIH1cblxuICAgICZfX21pbmljYXJ0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLS1zdGlja3ksXG4gICAgICAgICYtLXVuc3RpY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMy4ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQtbGluayB7XG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tc3RpY2t5ICYsXG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtaW5pY2FydC1pbiAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbWluaWNhcnQtLXVuc3RpY2sgJiB7XG4gICAgICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAkYmFkZ2Utd3JhcHBlcjogJjtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHotaW5kZXg6IDYwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgJi0tYW5pbWF0aW5nIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHRvcDogMS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skYmFkZ2Utd3JhcHBlcn0tLW1pbmljYXJ0LXN0aWNreSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIHRvcDogMS44cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxvYWRpbmcsXG4gICAgJi0tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMmVtLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxvYWRpbmcge1xuICAgICAgICAjeyRyb290fV9fbG9hZGluZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0xLjI1ZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG5cbiAgICAgICAgICAgICYtYmFsbCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBiYWxsLWluIDFzIGluZmluaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoXG4gICAgICAgICAgICAgICAgICAgIC0jeyRhZGR0b2NhcnRfYnV0dG9uLXNrZXdlZC1iYWNrZ3JvdW5kLXdpZHRoICsgMC4yfSxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdWNjZXNzIHtcbiAgICAgICAgI3skcm9vdH1fX3N1Y2Nlc3MtaWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1mYWlsIHtcbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hbmltYXRpb24tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwsXG4gICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCxcbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgbGluZWFyLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uLFxuICAgICAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgIEBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBtaW5pY2FydC1pbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbWluaWNhcnQtb3V0IHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgMTUlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgICAgODAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vYW5pbWF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL2hvb2snO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuLy8gRGVmaW5lIGRlZmF1bHQgdHlwZSBmb3IgYnV0dG9ucy4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IHByaW1hcnkgfCBzZWNvbmRhcnkgfCBsaW5rIHwgc3VjY2VzcyB8IGVycm9yXG4kYnV0dG9uX2RlZmF1bHQtdHlwZTogJ3ByaW1hcnknICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgaWNvbnMgaW4gYnV0dG9uLiBZb3UgY2FuIG92ZXJyaWRlIGl0IGluZGl2aWR1YWxseSBwZXIgYnV0dG9uIGluIGVhY2ggY29tcG9uZW50XG4vLyBWYXJpYW50czogbGVmdCB8IHJpZ2h0IHwgbm8taWNvbiB8IG9ubHktaWNvblxuJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zOiAncmlnaHQnICFkZWZhdWx0O1xuXG4vLyBHZW5lcmFsIHN0eWxlcyBmb3IgYnV0dG9uc1xuJGJ1dHRvbl9mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRidXR0b25fZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRidXR0b25fYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRidXR0b25fcGFkZGluZzogMC43NWVtIDFlbSAhZGVmYXVsdDtcbiRidXR0b25fcGFkZGluZy13aGVuLWljb246IDNlbSAhZGVmYXVsdDtcbiRidXR0b25fbGluZS1oZWlnaHQ6IDEuMjc1ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tYmVmb3JlLXdpZHRoOiAzLjRlbSAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLWFmdGVyLXdpZHRoOiAzZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX3RleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LWxldHRlci1zcGFjaW5nOiBub3JtYWwgIWRlZmF1bHQ7XG4kYnV0dG9uX3RleHQtYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgcHJpbWFyeWAgYnV0dG9uIHR5cGVcbiRidXR0b25fcHJpbWFyeS1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWVuYWJsZS1hbmltYXRpb246IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHNlY29uZGFyeWAgYnV0dG9uIHR5cGVcbiRidXR0b25fc2Vjb25kYXJ5LWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktZW5hYmxlLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlIGZvciBgbGlua2AgYnV0dG9uIHR5cGVcbiRidXR0b25fbGluay1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZzogMnJlbSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgc3VjY2Vzc2AgYnV0dG9uIHR5cGVcbiRidXR0b25fc3VjY2Vzcy1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTYwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBlcnJvcmAgYnV0dG9uIHR5cGVcbiRidXR0b25fZXJyb3ItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTYwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItZW5hYmxlLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERlZmluZXMgaG93IG11Y2ggYnV0dG9uIGljb24gc2hvdWxkIGJlIHB1bGxlZCB2ZXJ0aWNhbGx5IHRvIGNlbnRlciBpdC5cbi8vIFNob3VsZCBiZSBkZWZpbmVkIGluIGVtIHRvIG1ha2UgaXQgcmVsYXRpdmUgdG8gYnV0dG9uJ3MgZm9udCBzaXplLlxuJGJ1dHRvbl9zcGFuLWZvbnQtb2Zmc2V0OiAwICFkZWZhdWx0O1xuXG4vLyBEZWZpbmVzIGhvdyBtdWNoIGJ1dHRvbiBpY29uIHNob3VsZCBiZSBwdWxsZWQgdmVydGljYWxseSB0byBjZW50ZXIgaXQgb24gaWNvbiBidXR0b24uXG4vLyBTaG91bGQgYmUgZGVmaW5lZCBpbiBlbSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvIGJ1dHRvbidzIGZvbnQgc2l6ZS5cbiRidXR0b25faWNvbi1vZmZzZXQ6IDAuMWVtICFkZWZhdWx0O1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jYWxjLW5vLXVuc3BhY2VkLW9wZXJhdG9yXG5cbkBtaXhpbiBidXR0b24oXG4gICAgJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zXG4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbl9mb250LXdlaWdodDtcbiAgICB0ZXh0LWFsaWduOiAkYnV0dG9uX3RleHQtYWxpZ247XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpZiAoJHR5cGUgIT0gJ2xpbmsnKSB7XG4gICAgICAgIHBhZGRpbmc6ICRidXR0b25fcGFkZGluZztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsIGZpbGwgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3ByaW1hcnktZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9zZWNvbmRhcnktZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG5cbiAgICAgICAgKiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIGZpbGwgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9zdWNjZXNzLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fc3VjY2Vzcy1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Vycm9yJykge1xuICAgICAgICBAaWYgKCRidXR0b25fZXJyb3ItZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fZXJyb3ItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJixcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBAaWYgKCR0eXBlICE9ICdsaW5rJykge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbl9ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdwcmltYXJ5Jykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fcHJpbWFyeS1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3NlY29uZGFyeS1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zZWNvbmRhcnktZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLWNvbG9yO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc3VjY2Vzcy1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zdWNjZXNzLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdlcnJvcicpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9lcnJvci1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9lcnJvci1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fZXJyb3ItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9lcnJvci1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgQGlmICgkdHlwZSAhPSAnbGluaycpIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdwcmltYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufVxuXG5AbWl4aW4gYnV0dG9uX3NwYW4oXG4gICAgJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zXG4pIHtcbiAgICBtYXJnaW4tdG9wOiAkYnV0dG9uX3NwYW4tZm9udC1vZmZzZXQ7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbl9mb250LXdlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0O1xuICAgIGxldHRlci1zcGFjaW5nOiAkYnV0dG9uX3RleHQtbGV0dGVyLXNwYWNpbmc7XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZztcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgIHVuaXQoJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbikgPT1cbiAgICAgICAgICAgICAgICAgICAgdW5pdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uICtcbiAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArXG4gICAgICAgICAgICAgICAgICAgICAgICAje2dldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmc7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICB1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pID09XG4gICAgICAgICAgICAgICAgICAgIHVuaXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uICtcbiAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAjeyRidXR0b25fcGFkZGluZy13aGVuLWljb259ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICN7Z2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkaWNvbl9wb3MgPT0gJ29ubHktaWNvbicpIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9pY29uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIH1cblxuICAgIEBpZiAoJGljb25fcG9zID09ICdvbmx5LWljb24nKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAkYnV0dG9uX2ljb24tb2Zmc2V0O1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZyAvIDI7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmcgLyAyO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uX2ljb24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cbiIsIi8vIEluIHRoaXMgbWl4aW4geW91IGNhbiBkZWZpbmUgeW91ciBjdXN0b20gYW5pbWF0aW9uIGZvciBidXR0b25zXG4vLyBZb3UgY2FuIGNoZWNrIGV4YW1wbGVzIG9mIGFuaW1hdGlvbnMgaW4gaHR0cDovL2lhbmx1bm4uZ2l0aHViLmlvL0hvdmVyLyBsaWJyYXJ5XG5cbkBtaXhpbiBidXR0b25fYW5pbWF0aW9uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIGFuZFxuICAgICAgICAoKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0JykpXG4gICAge1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICAgICAgYm90dG9tOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgbGVmdDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1dHRvbl9hbmltYXRpb24tYmVmb3JlLXdpZHRoO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkYnV0dG9uX2JvcmRlci1yYWRpdXMgJGJ1dHRvbl9ib3JkZXItcmFkaXVzIDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAwZGVnLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCAxMDAlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgMGRlZyxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgODUlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDEwMCUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTAwJVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRidXR0b25fYW5pbWF0aW9uLWFmdGVyLXdpZHRoO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2VuZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgICAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbl9ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRidXR0b25fYm9yZGVyLXNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjezIgKiAkYnV0dG9uX2JvcmRlci1zaXplfSk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRhdXRob3JpemF0aW9uLWxpbmtfaXRlbS1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3JfYm9yZGVyLTEwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaG92ZXItZGVjb3JhdGlvbjogJGF1dGhvcml6YXRpb24tbGlua19kZWNvcmF0aW9uICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWF1dGhvcml6YXRpb24tbGluayB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjlyZW07XG4gICAgcGFkZGluZzogMCAwIDAgMC4zcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjNyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjdyZW07XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhdXRob3JpemF0aW9uLWxpbmtfaXRlbS1ib3JkZXI7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAkY29sb3I6ICRhdXRob3JpemF0aW9uLWxpbmtfY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRhdXRob3JpemF0aW9uLWxpbmtfY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAkZGVjb3JhdGlvbjogJGF1dGhvcml6YXRpb24tbGlua19kZWNvcmF0aW9uLFxuICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICRhdXRob3JpemF0aW9uLWxpbmtfaG92ZXItZGVjb3JhdGlvblxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGJhZGdlX2hvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIGJhZGdlX3R5cGUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gYmFkZ2Vfc3Bhbi1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cblxuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZV9jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2Vfc3BlY2lhbC1jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yOiAkcHJpY2Vfb2xkLWNvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9sYWJlbC1jb2xvcjogJHByaWNlX2NvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uOiB0cnVlICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1tYXJnaW46IDAuM3JlbSAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlczogMXJlbSAhZGVmYXVsdDtcbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMnO1xuXG4kYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9saXN0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoJGNvbG9yX3RleHQtOTAwLCAwLjE3KSAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ6IDUuOHJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wYWRkaW5nOiAwLjVyZW0gMXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZDogJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC13aWR0aDogMy42cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC1oZWlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wcmljZS1mb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRvY29tcGxldGUge1xuICAgICRyb290OiAmO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAkYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc8I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgZGQsXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkYXV0b2NvbXBsZXRlX2l0ZW0tcGFkZGluZztcbiAgICAgICAgbWFyZ2luOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbWFyZ2luO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgLmYtZml4IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1icmFuZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGF1dG9jb21wbGV0ZV9pdGVtX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnJlZS1zaGlwcGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdmcmVlLXNoaXBwaW5nJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdmcmVlLXNoaXBwaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICAgIGJvcmRlci10b3A6ICRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hbW91bnQge1xuICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgcGFkZGluZzogJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nO1xuICAgIGJvcmRlci1ib3R0b206ICRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyO1xuICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtc2l6ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIG1hcmdpbjogJGF1dG9jb21wbGV0ZV90aXRsZS1tYXJnaW47XG5cbiAgICAmOmhvdmVyLFxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaHRtbC5hdXRvY29tcGxldGUtZHJvcGRvd24tdmlzaWJsZSB7XG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuXG4gICAgYm9keSB7XG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9ob29rJztcblxuJGJhZGdlX2ZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJGJhZGdlX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYmFkZ2VfaGVpZ2h0OiAyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfcGFkZGluZzogMCAwLjdyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfYm9yZGVyOiAwICFkZWZhdWx0O1xuJGJhZGdlX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kYmFkZ2VfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLW5ldy1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tbmV3LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGlzY291bnQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZnJlZS1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRiYWRnZS0tcG9wdWxhci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWRhaWx5ZGVhbC1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1kYWlseWRlYWwtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS10b3AtYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJhZGdlLS10b3AtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuQG1peGluIGJhZGdlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLS1kZWZhdWx0LWNvbG9yO1xuICAgIGJvcmRlcjogJGJhZGdlX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYmFkZ2VfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAkYmFkZ2VfcGFkZGluZztcbiAgICBmb250LXNpemU6ICRiYWRnZV9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRiYWRnZV9mb250LXdlaWdodDtcbiAgICBtaW4taGVpZ2h0OiAkYmFkZ2VfaGVpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkYmFkZ2VfdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBiYWRnZV9ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGJhZGdlX3R5cGUoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIEBpZiAoJHR5cGUgPT0gJ25ldycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1uZXctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tbmV3LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2ZyZWUnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZnJlZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1mcmVlLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2ZyZWUtc2hpcHBpbmcnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZnJlZS1zaGlwcGluZy1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3BvcHVsYXInKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9jcmltc29uOyBcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tcG9wdWxhci1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdkaXNjb3VudCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kaXNjb3VudC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1kaXNjb3VudC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdyZWNlbnRseS1ib3VnaHQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdkYWlseWRlYWwnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdkYWlseWRlYWwtcGRwJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAndG9wJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXRvcC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS10b3AtY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYmFkZ2VfdHlwZS1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGJhZGdlX3NwYW4oJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmICsgJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYmFkZ2Vfc3Bhbi1ob29rKCR0eXBlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLWJyZWFkY3J1bWJzIHtcbiAgcGFkZGluZy10b3A6IDEuM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5jcy1icmVhZGNydW1ic19fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5jcy1icmVhZGNydW1ic19faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi5jcy1icmVhZGNydW1ic19faXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICM4ODg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5jcy1icmVhZGNydW1ic19faXRlbTpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAuOGVtO1xuICBjb250ZW50OiBcIuKBhFwiO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5jcy1icmVhZGNydW1ic19fbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5jcy1icmVhZGNydW1ic19fbGluazp2aXNpdGVkIHtcbiAgY29sb3I6ICNiMGIwYjA7XG59XG4uY3MtYnJlYWRjcnVtYnNfX2xpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMjEyMTIxO1xufVxuLmNzLWJyZWFkY3J1bWJzX19zZXBhcmF0b3ItaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwLjVlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB3aWR0aDogMC44ZW07XG4gIGhlaWdodDogMC44ZW07XG4gIGZpbGw6ICNiMGIwYjA7XG59XG5cbi5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLmNzLWJyZWFkY3J1bWJzIHtcbiAgb3JkZXI6IC0yO1xuICBtYXJnaW46IDAgYXV0byAzcmVtIGF1dG87XG4gIHBhZGRpbmc6IDA7XG59XG4uY2F0YWxvZy1jYXRlZ29yeS12aWV3IC5jcy1wYWdlLWNhdGVnb3J5X19jYy10b3Age1xuICBvcmRlcjogLTI7XG59IiwiLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRidXR0b24tZmFsbGJhY2tfdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRidXR0b24tY29tcG9uZW50X3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtcG9zaXRpb246IDUwJSAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtdHJhbnNsYXRpb246IHRyYW5zbGF0ZVgoLTUwJSkgIWRlZmF1bHQ7XG5cbi4jeyRuc31idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgKTtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uI3skbnN9YnV0dG9uLWNvbXBvbmVudCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAkdHlwZTogJGJ1dHRvbi1jb21wb25lbnRfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICk7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAkYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXBvc2l0aW9uO1xuICAgIHRyYW5zZm9ybTogJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC10cmFuc2xhdGlvbjtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2Ftb3VudCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBtaXhpbiBjb21wb25lbnQtc3BhY2luZygkbWFyZ2lucy1jb25maWc6ICRjb21wb25lbnQtc3BhY2luZy1jb25maWd1cmF0aW9uKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgZGVmYXVsdCkge1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCBjb21wb25lbnQgbWFyZ2luIHZhbHVlXG4gICAgICAgIG1hcmdpbjogMCAwIDNyZW07XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgcmVzcG9uc2l2ZSkge1xuICAgICAgICAvLyBBZGRpbmcgbWFyZ2luIHJ1bGVzIGZvciBlYWNoIHBhc3NlZCBicmVha3BvaW50XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkbWFyZ2luIGluIG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRicmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNraXAtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRjb29raWUtbWVzc2FnZV9iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfZm9udC1zaXplOiA4NSUgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfZm9udC1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLS1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnQ6ICd0YWJsZXQnICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYWxpZ246IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb29raWUtbWVzc2FnZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAxLjJyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvb2tpZS1tZXNzYWdlX2JhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6ICRjb29raWUtbWVzc2FnZV9mb250LWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIGZvbnQtc2l6ZTogJGNvb2tpZS1tZXNzYWdlX2ZvbnQtc2l6ZTtcbiAgICB6LWluZGV4OiA5ODtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDExMCUsIDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMThzIGxpbmVhcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgYm90dG9tOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNob3duIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgei1pbmRleDogMjAyO1xuICAgIH1cblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICBhbGlnbi1zZWxmOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1hbGlnbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLmJsb2NrLWNtcy1saW5rLndpZGdldCxcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkY29va2llLW1lc3NhZ2VfbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLS1ob3ZlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDUuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiA1LjVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIHRvcDogLTMuNXJlbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjb29raWUtbWVzc2FnZV9pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjb29raWUtbWVzc2FnZV9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRkYWlseWRlYWwtLXRpbGUtcG9zaXRpb246IGFic29sdXRlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1ib3R0b206IDAgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWxlZnQ6IDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1hbGlnbi1pdGVtczogZmxleC1zdGFydCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItbWFyZ2luOiAwIDAgMC41cmVtICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX3RpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX3RpdGxlLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1iYWNrZ3JvdW5kOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LXBhZGRpbmc6IDJweCA0cHggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9pdGVtcy1hbW91bnQtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWp1c3RpZnktY29udGVudDogc3RyZXRjaCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWFsaWduLWl0ZW1zOiBzdHJldGNoICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LW1hcmdpbi1mYWN0b3I6IDNweCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXRpbGUtbWFyZ2luLWZhY3RvcjogMXB4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC13aWR0aDogMTAwJSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtcGFkZGluZzogMC4zcmVtIDAuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtbGluZS1oZWlnaHQ6IDEgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJhY2tncm91bmQ6IG5vbmUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLXdpZHRoOiA1MCUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLWJhY2tncm91bmQ6ICRjb2xvcl9jcmltc29uICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLXdpZHRoOiAxLjlyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWhlaWdodDogMi40cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1maWxsOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtY29sb3I6ICRjb2xvcl9jcmltc29uICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtcGFkZGluZzogMnB4IDAgMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtd2VpZ2h0OiBpbmhlcml0ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtY29sb3I6ICRjb2xvcl9ncmF5ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtcGFkZGluZyAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbiRkYWlseS1kZWFsLXRlYXNlcl9wcm9kdWN0LWRkLWNvdW50ZXItbWluLWhlaWdodDogNHJlbSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24tZmlsbC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4vLyBCZWNhdXNlIHRoZXJlIGlzbid0IGVub3VnaCBzcGFjZSBmb3IgZGlzcGxheSBmdWxsIGNvdW50ZXIgb24gbW9iaWxlIChkZXBlbmRzIG9uIGRlc2luZyksIHdlIGNhbiBkaXNwbGF5IGNvdW50ZXIgaW4gbGlnaHRlciB2ZXJzaW9uIChvbmx5IG9uIHRpbGUpXG4vLyBTZXQgYGZhbHNlYCB0byBpZ25vcmUgbGlnaHRlciB2ZXJzaW9uXG4kZGFpbHlkZWFsX2Z1bGwtY291bnRlci1saWdodGVyLXZlcnNpb24tYnJlYWtwb2ludDogJzw2MDBweCcgIWRlZmF1bHQ7XG5cbi4jeyRuc31kYWlseWRlYWwge1xuICAgICRyb290OiAmO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAkZGFpbHlkZWFsX2hlYWRlci1tYXJnaW47XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbF9oZWFkZXItZm9udC1zaXplO1xuXG4gICAgICAgIEBpZiAkZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5ID09XG4gICAgICAgICAgICBmbGV4IG9yXG4gICAgICAgICAgICAkZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5ID09XG4gICAgICAgICAgICBpbmxpbmUtZmxleFxuICAgICAgICB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRkYWlseWRlYWxfaGVhZGVyLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkZGFpbHlkZWFsX2hlYWRlci1hbGlnbi1pdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGRhaWx5ZGVhbF90aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9faXRlbXMtYW1vdW50IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfaXRlbXMtYW1vdW50LWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgICZfX2NvdW50ZG93biB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXk7XG4gICAgICAgIG1hcmdpbjogJGRhaWx5ZGVhbF9jb3VudGRvd24tbWFyZ2luO1xuXG4gICAgICAgIEBpZiAkZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5ID09XG4gICAgICAgICAgICBmbGV4IG9yXG4gICAgICAgICAgICAkZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5ID09XG4gICAgICAgICAgICBpbmxpbmUtZmxleFxuICAgICAgICB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRkYWlseWRlYWxfY291bnRkb3duLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1hbGlnbi1pdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC13aWR0aDtcbiAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWRpc3BsYXk7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWZsZXgtZGlyZWN0aW9uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtbGluZS1oZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICYtLXNwZWNpYWwge1xuICAgICAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwtd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXRlYXNlciAmIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRkYWlseS1kZWFsLXRlYXNlcl9wcm9kdWN0LWRkLWNvdW50ZXItbWluLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi1pY29uIHtcbiAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfY291bnRkb3duLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1oZWlnaHQ7XG4gICAgICAgIGZpbGw6ICRkYWlseWRlYWxfY291bnRkb3duLWljb24tZmlsbDtcbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1kaXNwbGF5O1xuICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZGlzcGxheTtcbiAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1wYWRkaW5nO1xuICAgIH1cblxuICAgICYtLXRpbGUge1xuICAgICAgICBwb3NpdGlvbjogJGRhaWx5ZGVhbC0tdGlsZS1wb3NpdGlvbjtcbiAgICAgICAgbGVmdDogJGRhaWx5ZGVhbC0tdGlsZS1sZWZ0O1xuICAgICAgICBib3R0b206ICRkYWlseWRlYWwtLXRpbGUtYm90dG9tO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICAjeyRyb290fV9fYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJhY2tncm91bmQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LXBhZGRpbmc7XG4gICAgICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICRkYWlseWRlYWxfZnVsbC1jb3VudGVyLWxpZ2h0ZXItdmVyc2lvbi1icmVha3BvaW50Li4uXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLS1zcGVjaWFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQRFBcbiAgICAmX19iYWRnZS1wZHAtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24taGVpZ2h0O1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgZmlsbDogJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1maWxsLWNvbG9yO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWRpc3BsYXktY29udHJvbGxlciB7XG4gICAgJi0taGlkZGVuLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcHNldWRvaWNvbl9iZWZvcmUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy1ib3R0b20tYm9yZGVyOiAxcHggJGNvbG9yX2JvcmRlci01MDAgc29saWQgIWRlZmF1bHQ7XG5cbi8vIE9mZmNhbnZhcyB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctZGVmYXVsdDogJ2Rvd24nICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodDogMC4xcmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LW9mZnNldDogM3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldDogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBEcm9wZG93biB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtODAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItdHlwZTogJ2Fycm93JyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXdpZHRoOiAwLjdyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LW9mZnNldDogMC41cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl9ib3JkZXItMTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk6IDEuNHJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5OiAxLjFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31kcm9wZG93bi1zd2l0Y2hlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMS4zcmVtO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGRyb3Bkb3duLXN3aXRjaGVyX3RvcGJhci1zZXBhcmF0b3ItYm9yZGVyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdG9yZXMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbiB7XG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgI3skcm9vdH0tLWxhbmd1YWdlICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RyaWdnZXIge1xuICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtYm90dG9tLWJvcmRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItZW5hYmxlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItdHlwZSxcbiAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWRlZmF1bHQsXG4gICAgICAgICAgICAgICAgJGFycm93LWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAkd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItaGVpZ2h0LFxuICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1hY3RpdmUsXG4gICAgICAgICAgICAgICAgJGFjdGl2ZS1zZWxlY3RvcjogJyYuYWN0aXZlJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAwIDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICAgICAgICAgICBAaWYgJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItZW5hYmxlZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXItdHJpZ2dlci1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZS1zZWxlY3RvcjogJyYuYWN0aXZlJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLXN3aXRjaGVyX2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRkcm9wZG93bi1zd2l0Y2hlcl9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWN1cnJlbmN5IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3RpdmUgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pdGVtLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtaXRlbS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS40cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS44cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1zZWNvbmRhcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9ob29rJztcblxuJHBzZXVkb2ljb24tdHlwZTogJ3BsdXMnICFkZWZhdWx0OyAvLyBwbHVzIChkZWZhdWx0KSBvciBhcnJvd1xuLy8gQW5pbWF0aW9uIGZvciBhcnJvd3Mgd29ya3Mgb25seSBpZiBkZWZhdWx0IGFuZCBhY3RpdmUgZGlyZWN0aW9uIGFyZSBvcHBvc2l0ZVxuJHBzZXVkb2ljb24tYW5pbWF0ZTogdHJ1ZSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWFuaW1hdGlvbi10aW1lOiAwLjE1cyAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWhvdmVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWV4cGFuZGVkLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1oZWlnaHQ6IDAuMnJlbSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuLy8gQWRkaXRpb25hbCBzZXR0aW5ncyBmb3IgYXJyb3dzXG4kcHNldWRvaWNvbi1hcnJvdy1kZWZhdWx0LWRpcmVjdGlvbjogJ3VwJyAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWFycm93LWFjdGl2ZS1kaXJlY3Rpb246ICdkb3duJyAhZGVmYXVsdDtcbi8vIEluIHNvbWUgY2FzZXMgKGl0IGRlcGVuZHMgb24gJHBzZXVkb2ljb24td2lkdGgvaGVpZ2h0IHZhbHVlKSwgd2UgbmVlZCB0byBmaXggb2Zmc2V0IGZvciBsZWZ0IHBhcnQgb2YgaWNvblxuJHBzZXVkb2ljb24tYXJyb3ctbGVmdC1vZmZzZXQ6IGNhbGMoXG4gICAgI3skcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldH0gKyAjeyRwc2V1ZG9pY29uLXdpZHRofSAtICN7MiAqXG4gICAgICAgICRwc2V1ZG9pY29uLWhlaWdodH1cbikgIWRlZmF1bHQ7XG5cbiRwc2V1ZG9pY29uLWFjdGl2ZS1zZWxlY3RvcjogJyZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0nICFkZWZhdWx0O1xuXG5AbWl4aW4gcHNldWRvaWNvbihcbiAgICAkdHlwZTogJHBzZXVkb2ljb24tdHlwZSxcbiAgICAkYW5pbWF0ZWQ6ICRwc2V1ZG9pY29uLWFuaW1hdGUsXG4gICAgJGFuaW1hdGlvbi10aW1lOiAkcHNldWRvaWNvbi1hbmltYXRpb24tdGltZSxcbiAgICAkY29sb3I6ICRwc2V1ZG9pY29uLWNvbG9yLFxuICAgICRjb2xvci1ob3ZlcjogJHBzZXVkb2ljb24taG92ZXItY29sb3IsXG4gICAgJGNvbG9yLWV4cGFuZGVkOiAkcHNldWRvaWNvbi1leHBhbmRlZC1jb2xvcixcbiAgICAkd2lkdGg6ICRwc2V1ZG9pY29uLXdpZHRoLFxuICAgICRoZWlnaHQ6ICRwc2V1ZG9pY29uLWhlaWdodCxcbiAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6ICRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICRhcnJvdy1kZWZhdWx0OiAkcHNldWRvaWNvbi1hcnJvdy1kZWZhdWx0LWRpcmVjdGlvbixcbiAgICAkYXJyb3ctYWN0aXZlOiAkcHNldWRvaWNvbi1hcnJvdy1hY3RpdmUtZGlyZWN0aW9uLFxuICAgICRhcnJvdy1vZmZzZXQ6ICRwc2V1ZG9pY29uLWFycm93LWxlZnQtb2Zmc2V0LFxuICAgICRhY3RpdmUtc2VsZWN0b3I6ICRwc2V1ZG9pY29uLWFjdGl2ZS1zZWxlY3RvclxuKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAgICAgICBAaWYgKCRhbmltYXRlZCkge1xuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnYXJyb3cnKSB7XG4gICAgICAgICAgICAgICAgQGlmICgoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykgYW5kICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykpIG9yXG4gICAgICAgICAgICAgICAgICAgICgoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykpIG9yXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpXG4gICAgICAgICAgICAgICAgICAgICkgb3JcbiAgICAgICAgICAgICAgICAgICAgKCgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSlcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkYW5pbWF0aW9uLXRpbWUgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgJGFuaW1hdGlvbi10aW1lIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAoMiAqICRhbmltYXRpb24tdGltZSkgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgJGFuaW1hdGlvbi10aW1lIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkY29sb3ItaG92ZXIgIT0gJGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIEBpZiAoJGNvbG9yLWhvdmVyICE9ICRjb2xvcikge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGNvbG9yLWV4cGFuZGVkICE9ICRjb2xvcikge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1leHBhbmRlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Fycm93Jykge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCA1MCUsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKC05MGRlZykgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uX2JlZm9yZS1ob29rKCR0eXBlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKTtcbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGZpZWxkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jb250cm9sLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWljb24taG9vaygkdHlwZTogJycpIHtcbn1cblxuQG1peGluIGZpZWxkLW5vdGUtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1zZWxlY3QtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2ItaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvdXJpLWZyaWVuZGx5LWhleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL2hvb2snO1xuXG4kZmllbGRfZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kZmllbGRfdHJhbnNpdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuXG4kZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1mb250LXNpemU6IDAuODVlbSAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcblxuJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTogMWVtICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LXBhZGRpbmc6ICRidXR0b25fcGFkZGluZyAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5OiAwLjY1ICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9lcnJvci1mb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX25vdGUtZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZpZWxkX25vdGUtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX2Vycm9yLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfd2FybmluZy1jb2xvcjogJGNvbG9yX3dhcm5pbmctNTAwICFkZWZhdWx0O1xuLy8gQmFzZWQgb24gaHR0cHM6Ly93d3cuZmlsYW1lbnRncm91cC5jb20vbGFiL3NlbGVjdC1jc3MuaHRtbFxuJGZpZWxkX3NlbGVjdC1mb250LXNpemU6ICRmaWVsZF9pbnB1dC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1wYWRkaW5nLXJpZ2h0OiAyLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcblxuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJSAhZGVmYXVsdDtcblxuLy8gTm90ZSB0aGF0IHNlbGVjdCBiYWNrZ3JvdW5kIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYmFja2dyb3VuZC1pbWFnZSB0byBwcmV2ZW50XG4vLyBvcHRpb24gZWxlbWVudHMgZnJvbSBpbmhlcml0aW5nIGl0IG9uIHNvbWUgYnJvd3NlcnMuXG4kZmllbGRfc2VsZWN0LWljb24tZmlsbDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbCl9JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtYWN0aXZlKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpICFkZWZhdWx0O1xuXG4kZmllbGRfc2VsZWN0LWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX2lucHV0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuJGZpZWxkX3JhZGlvLWZvbnQtc2l6ZTogMWVtICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLXNpemU6IDFlbSAhZGVmYXVsdDtcbi8vIExldHMgeW91IGFkanVzdCBib3RoIHJhZGlvIGFuZCBjaGVja2JveCBhbGlnbm1lbnQgYmFzZWQgb24gZm9udCB5b3UndmUgY2hvc2VuLlxuJGZpZWxkX3JhZGlvLW9mZnNldDogLTAuMDYyNWVtICFkZWZhdWx0O1xuLy8gQWxpZ25pbmcgYW55dGhpbmcgdGhhdCBjb21lcyBhZnRlciB3aXRoIGlucHV0IHBhZGRpbmdzLCB0aGlzIDFweCBzdGFuZHMgZm9yIGlucHV0J3MgYm9yZGVyIHdpZHRoLlxuJGZpZWxkX3JhZGlvLW1hcmdpbjogJGZpZWxkX3JhZGlvLW9mZnNldFxuICAgIGNhbGMoI3sxLjVlbSAtICRmaWVsZC1yYWRpby1zaXplfSArIDFweCkgMCAwICFkZWZhdWx0O1xuXG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3JhZGlvLWljb24tZmlsbCl9JyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIikgIWRlZmF1bHQ7XG5cbiRmaWVsZF9yYWRpby1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnktODAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdy1hY3RpdmU6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdy1jaGVja2VkOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWRpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4kZmllbGRfY2hlY2tib3gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtaWNvbi1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX2NoZWNrYm94LWljb24tZmlsbCl9JyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpICFkZWZhdWx0O1xuXG4kZmllbGRfaWNvbi13aWR0aDogMS4zZW0gIWRlZmF1bHQ7XG4kZmllbGRfaWNvbi1oZWlnaHQ6IDEuM2VtICFkZWZhdWx0O1xuJGZpZWxkX2ljb24tc3VjY2Vzcy1iYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9jaGVjay1ncmVlbi5zdmcnKSBuby1yZXBlYXRcbiAgICBjZW50ZXIgY2VudGVyIC8gY29udGFpbiAhZGVmYXVsdDtcblxuJGZpZWxkX2RvYi1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfZm9udC1zaXplO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvcigpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9lcnJvci1mb250LXNpemU7XG4gICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgbWFyZ2luLXRvcDogMC4yZW07XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbCgpIHtcbiAgICBmb250LXdlaWdodDogJGZpZWxkX2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGZpZWxkX2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgIGNvbG9yOiAkZmllbGRfbGFiZWwtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAqJztcbiAgICAgICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbCgpIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2wtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfaW5wdXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmaWVsZF9pbnB1dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3c7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG4gICAgLy9tYXJnaW46IDAgMCAwLjJlbTsgLy8gQWRkIHNwYWNpbmcgdW5kZXIgbGFiZWwuIFRoaXMgY2FuJ3QgYmUgYWRkZWQgdG8gbGFiZWwgaXRzZWxmIGJlY2F1c2UgdGhleSBhcmUgc29tZXRpbWVzIHJlbmRlcmVkIGVtcHR5LlxuICAgIG1hcmdpbjogMHB4OyAvLyBtYXJnaW4gcmVtb3ZlZCAxMi4xMi4yMDIyXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgLy8gUmVtb3ZlcyBkcm9wIHNoYWRvdyBmcm9tIGlucHV0cyBvbiBpT1MuXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGZpZWxkX2lucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3IoKSB7XG4gICAgJixcbiAgICAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyOiAkZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWljb24oJHR5cGU6ICcnKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAkZmllbGRfaWNvbi13aWR0aDtcbiAgICBoZWlnaHQ6ICRmaWVsZF9pY29uLWhlaWdodDtcbiAgICByaWdodDogMC44ZW07XG4gICAgdG9wOiAwLjhlbTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnc3VjY2VzcycpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGZpZWxkX2ljb24tc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWljb24taG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBmaWVsZC1ub3RlKCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX25vdGUtZm9udC1zaXplO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogJGZpZWxkX25vdGUtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfZXJyb3ItY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfd2FybmluZy1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLXdhcm5pbmctaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0KCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX3NlbGVjdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX3NlbGVjdC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodDtcbiAgICBjb2xvcjogJGZpZWxkX3NlbGVjdC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3c7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1wb3NpdGlvbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6LW1vei1mb2N1c3JpbmcsXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBvcHRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8oKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogJGZpZWxkX3JhZGlvLXNpemU7XG4gICAgd2lkdGg6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIG1hcmdpbjogJGZpZWxkX3JhZGlvLW1hcmdpbjtcbiAgICBmb250LXNpemU6ICRmaWVsZF9yYWRpby1mb250LXNpemU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87IC8vIFByZXZlbnQgZmxleCBwYXJlbnQgZnJvbSBicmVha2luZyBkaW1lbnNpb25zLlxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAmOjotbW96LWZvY3VzLWlubmVyLFxuICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAmW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpby1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveC1sYWJlbCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1zaXplO1xuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2IoKSB7XG4gICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGZpZWxkX2RvYi1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtZG9iLWhvb2soKTtcbn1cbiIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi8vIE91ciBCRU0gY29tcG9uZW50LlxuLmNzLWZpZWxkLFxuLy8gTGVmdCBmb3Igbm93IGZvciBjb21wYXRpYmlsaXR5IHNha2UuXG4uY3MtaW5wdXQge1xuICAgIEBpbmNsdWRlIGZpZWxkKCk7XG5cbiAgICAmX19jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcblxuICAgICAgICAucmVxdWlyZWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQsXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgJl9fcmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3goKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pY29uKCk7XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcbiAgICB9XG5cbiAgICAmX19lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG4gICAgfVxufVxuLy8gTWFnZW50byBjbGFzc2VzIHVzZWQgaW4gY2hlY2tvdXQsIGxvZ2luL3JlZ2lzdGVyIGZvcm1zIGV0Yy5cbi5maWVsZCB7XG4gICAgQGluY2x1ZGUgZmllbGQoKTtcblxuICAgICYuX3N1Y2Nlc3M6bm90KC5fd2Fybikge1xuICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWljb24oJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuXG4gICAgICAgID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG4gICAgfVxuXG4gICAgJi5jaG9pY2UgbGFiZWwubGFiZWwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkLFxuICAgICYuX3JlcXVpcmVkIHtcbiAgICAgICAgPiAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVxdWlyZWQge1xuICAgICAgICAuX3JlcXVpcmVkIHtcbiAgICAgICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGlkZSBhc3Rlcmlza3MgZm9yIGxhYmVscyBpbnNpZGUgZmllbGRzZXRzIGFzIHRoZXkgYXJlIHVzdWFsbHkgcmVuZGVyZWQgZW1wdHkuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlucHV0LXRleHQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgIC5jaGVja2JveCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgICYgKyAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY3VzdG9tZXItbmFtZS1wcmVmaXgge1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpZWxkLWRvYiB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWRvYigpO1xuICAgIH1cblxuICAgICYuX2Vycm9yIHtcbiAgICAgICAgLmlucHV0LXRleHQsXG4gICAgICAgIC5jaGVja2JveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0aW5nIHN0eWxlcyBmb3IgaW5wdXQgd2l0aCB0b29sdGlwLlxuICAgIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAvLyBSZXZlcnRpbmcgaW5mbyB0b29sdGlwIHN0eWxlcyB0byBtYWtlIGl0IGFwcGVhciBhcyBub3RlIGJlbG93IHRoZSBpbnB1dC5cbiAgICAuZmllbGQtdG9vbHRpcCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgICAgICAgLmxhYmVsLFxuICAgICAgICAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxufVxuLy8gSGFzIHRvIGJlIHNjb3BlZCB0byBkaXYsIG90aGVyd2lzZSBpdCBjb2xsaWRlcyB3aXRoIGlucHV0IGNsYXNzLlxuZGl2Lm1hZ2UtZXJyb3IsXG5kaXYuZmllbGQtZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qKlxuICogRm9vdGVyIGNvbXBvbmVudCBjdXN0b21pemF0aW9uLlxuICogQHNlZSAvTWFnZW50b19UaGVtZS90ZW1wbGF0ZXMvZm9vdGVyL2NvbHVtbnMucGh0bWwgZm9yIHRlbXBsYXRlcy5cbiAqL1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kZm9vdGVyX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRmb290ZXJfYmFja2dyb3VuZDogJGNvbG9yX2dhbGxlcnkgIWRlZmF1bHQ7XG4kZm9vdGVyX2VkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQ6IDJlbSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfZ3JheSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWhlYWRsaW5lLWxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtcGFkZGluZzogMnJlbSAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS1jb2xvcjogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAxLjJlbSAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZTogZmFsc2UgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28td2lkdGg6IDEzLjVlbSAhZGVmYXVsdDtcbiRmb290ZXJfbG9nby1oZWlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyIHtcbiAgICAkcm9vdDogJjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6ICRmb290ZXJfdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkZm9vdGVyX2JhY2tncm91bmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwIDAgMnJlbTtcbiAgICBtYXJnaW4tdG9wOiA0cmVtOyAvL2FkZGl0aW9uYWwgbWFyZ2luIG9uIHRvcFxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAwICRmb290ZXJfZWRnZS1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAvLyBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvbW8ge1xuICAgICAgICAgICAgQGlmICRmb290ZXJfcHJvbW8tZGlzcGxheS1vbi1tb2JpbGUgPT1mYWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBmbGV4LWJhc2lzOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAvLyBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICAgICAgICAgIC8vIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmtzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIC8vZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkZm9vdGVyX3NlY3Rpb24tdmVydGljYWwtb2Zmc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIC8vIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICAgICAgLy8gZmxleC1ncm93OiA1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0cmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAvLyBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIC8vIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAvLyBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgICAgICAgICAgLy8gZmxleC1ncm93OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIC8vIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXdzbGV0dGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAvLyBmbGV4LWdyb3c6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2NpYWxzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RvcmVzLXN3aXRjaGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLXRpdGxlLFxuICAgIFtkYXRhLXJvbGU9J3RpdGxlJ10ge1xuICAgICAgICBAaWYgJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWhlYWRsaW5lLWxldmVsICE9J25vbmUnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWhlYWRsaW5lLWxldmVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItdG9wOiAkZm9vdGVyX3NlY3Rpb24tc2VwYXJhdG9yLWJvcmRlcjtcbiAgICAgICAgcGFkZGluZzogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXBhZGRpbmc7XG4gICAgICAgIGNvbG9yOiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb290ZXJfc2VjdGlvbi10aXRsZS10cmFuc2Zvcm07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2VjdGlvbi0tY29sbGFwc2libGUgJiB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgQGlmICRmb290ZXJfc2VjdGlvbi1wc2V1ZG9pY29uLWluY2x1ZGUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc2VjdGlvbi0tc29jaWFscyAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgcGFkZGluZzogMCAkZm9vdGVyX3NlY3Rpb24tZWRnZS1ndXR0ZXIgJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyO1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NlY3Rpb24tLWNvbGxhcHNpYmxlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zaG9wLWxvZ28ge1xuICAgICAgICBkaXNwbGF5OiAkZm9vdGVyX2xvZ28tZGlzcGxheTtcbiAgICAgICAgd2lkdGg6ICRmb290ZXJfbG9nby13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkZm9vdGVyX2xvZ28taGVpZ2h0O1xuICAgICAgICBtaW4td2lkdGg6ICRmb290ZXJfbG9nby13aWR0aDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tZm9vdGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYtLWZvb3Rlci11c3BzIHtcbiAgICAgICAgLiN7JG5zfWltYWdlLXRlYXNlcl9fY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRmb290ZXItbGlua3NfbGlzdC1pdGVtLW1hcmdpbjogMCAwIDAuM2VtICFkZWZhdWx0O1xuXG4kZm9vdGVyLWxpbmtzX2xpbmstZm9udC1zaXplOiBpbmhlcml0ICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItY29sb3I6ICRmb290ZXItbGlua3NfbGluay1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTogMC41ZW0gMCAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A6IDAuMzVlbSAwICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyLWxpbmtzIHtcblxuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkZm9vdGVyLWxpbmtzX2xpbmstY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZm9vdGVyLWxpbmtzX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvblxuICAgICAgICApO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rlci1saW5rc19saW5rLWZvbnQtc2l6ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1saW5rc3tcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxle1xuICAgICAgICBmb250LWZhbWlseTogbGlub3R5cGUtZGlkb3QtaGVhZGxpbmUsIHNlcmlmO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIC5uZXdze1xuICAgICAgICAgICAgY29sb3I6IHBpbms7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jcy1mb290ZXItbGlua3N7XG4gICAgICAgIC5uYXYtbGlua3tcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mb290ZXJfX2RlbGl2ZXJ5X21ldGhvZCxcbiAgICAuZm9vdGVyX19wYXltZW50X21ldGhvZHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAuZm9vdGVyX19kZWxpdmVyeV9tZXRob2RfaXRlbSxcbiAgICAgICAgLmZvb3Rlcl9fcGF5bWVudF9tZXRob2RfaXRlbXtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLnNvY2lhbHtcbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50e1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIC5mb290ZXItc29jaWFsLWlubmVye1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGgze1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBsaW5vdHlwZS1kaWRvdC1oZWFkbGluZSwgc2VyaWY7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxcmVtO1xuICAgICAgICBncmlkLXJvdy1nYXA6IDBweDtcbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGU6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjtcbiAgICAgICAgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZTpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiAyIC8gMSAvIDMgLyAyO1xuICAgICAgICB9XG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IDEgLyAyIC8gMyAvIDM7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGU6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogMSAvIDMgLyAyIC8gNDtcbiAgICAgICAgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZTpudGgtY2hpbGQoNSkge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiAyIC8gMyAvIDMgLyA0O1xuICAgICAgICB9XG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlOm50aC1jaGlsZCg2KSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IDEgLyA0IC8gMyAvIDU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kZ29vZ2xlLXJlY2FwdGNoYV9tYXJnaW46IDFyZW0gMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX3RleHQtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLyBuZXdzbGV0dGVyXG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLW1hcmdpbjogMXJlbSAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LW1hcmdpbjogMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3ItaG92ZXI6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24taG92ZXI6IHVuZGVybGluZSAhZGVmYXVsdDtcblxuLiN7JG5zfWdvb2dsZS1yZWNhcHRjaGEge1xuICAgICRyb290OiAmO1xuXG4gICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9tYXJnaW47XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICAgICYtLWludmlzaWJsZSB7XG4gICAgICAgICAgICAuZ3JlY2FwdGNoYS1iYWRnZSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1tYXJnaW47XG4gICAgICAgIGZvbnQtc2l6ZTogJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWNvbG9yO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbi1ob3ZlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5ld3NsZXR0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbWFyZ2luO1xuXG4gICAgICAgICN7JHJvb3R9X19ub3RlIHtcbiAgICAgICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LW1hcmdpbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtY29sb3I7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJGRlY29yYXRpb246ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uLWhvdmVyXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWN1c3RvbWVyX2NyZWF0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICAgIH1cblxuICAgICYtLWN1c3RvbWVyX2xvZ2luIHtcbiAgICAgICAgLmctcmVjYXB0Y2hhIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBGYWlyIHdhcm5pbmc6IERvbid0IG1peCB1bml0cyB3aGlsZSB1c2luZyAndXRpbHMvcG9seS1mbHVpZC1zaXppbmcnIGZlYXR1cmUuXG4gKiBJZiB5b3UgdXNlIHJlbXMsIHN0aWNrIHRvIHJlbXMgZXZlcnl3aGVyZSBpbiB0aGUgYXJlYSBvZiB3aG9sZSBtYXAsIG9yIGVsc2UgdGhlIG1peGluIHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAqL1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3BvbHktZmx1aWQtc2l6aW5nJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRncmlkLWxheW91dF9yb3dzLXNlcGFyYXRvci1zaG93OiB0cnVlICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWhlaWdodDogMXB4ICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWNvbG9yOiAkY29sb3JfZ2FsbGVyeSAhZGVmYXVsdDtcblxuJGdyaWQtbGF5b3V0X2JyaWNrcy1ndXR0ZXI6IDAgIWRlZmF1bHQ7XG4vLyBJZiAkZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3Itc2hvdyBpcyBzZXQgdG8gdHJ1ZSBicmljayBzaG91bGQgaGF2ZSBwYWRkaW5nIHdpdGggYXQgbGVhc3QgaGlnaHQgb2Ygc2VwYXJhdG9yXG4kZ3JpZC1sYXlvdXRfYnJpY2stcGFkZGluZzogMXB4ICFkZWZhdWx0O1xuXG4kZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmljay1yYXRpby1oZWlnaHQ6ICR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItY29udGVudC1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWxpZ2h0LXNjaGVtZS1jb2xvcjogJHNjaGVtZS0tbGlnaHRfdGV4dHMtY29sb3IgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yOiAkc2NoZW1lLS1kYXJrX3RleHRzLWNvbG9yICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1jb250ZW50LWxpbmUtaGVpZ2h0OiAxLjE1ICFkZWZhdWx0O1xuXG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW46IDAuMmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXdlaWdodDogJHRleHRzLW9uLWltYWdlX2hlYWRsaW5lLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtZm9udC1zaXplLW1pbjogMS44cmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXNpemUtbWF4OiAyLjhyZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtc2l6ZS1taW4sXG4gICAgJHBhZ2VfbWF4LXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtc2l6ZS1tYXgsXG4pICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1oZWFkbGluZS1ib3R0b20tbWFyZ2luOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW4gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLWhlYWRsaW5lLWZvbnQtc2l6ZS1taW46ICRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtZm9udC1zaXplLW1pbiAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1heDogNHJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1tYXA6IChcbiAgICAkcGFnZV9taW4td2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1pbixcbiAgICAkcGFnZV9tYXgtd2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjogMC42ZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtd2VpZ2h0OiAkdGV4dHMtb24taW1hZ2Vfc3ViaGVhZGxpbmUtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLXRleHQtdHJhbnNmb3JtOiAkdGV4dHMtb24taW1hZ2Vfc3ViaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1taW46IDEuNnJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heDogMS44cmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1mb250LW1hcDogKFxuICAgICRwYWdlX21pbi13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1mb250LXNpemUtbWluLFxuICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1mb250LXNpemUtbWF4LFxuKSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1ib3R0b20tbWFyZ2luICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LXNpemUtbWluOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1taW4gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1tYXg6IDIuNXJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1tYXA6IChcbiAgICAkcGFnZV9taW4td2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1pbixcbiAgICAkcGFnZV9tYXgtd2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWJvdHRvbS1tYXJnaW46IDFlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtd2VpZ2h0OiAkdGV4dHMtb24taW1hZ2VfdGV4dC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLXRleHQtdHJhbnNmb3JtOiAkdGV4dHMtb24taW1hZ2VfdGV4dC10ZXh0LXRyYW5zZm9ybSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtc2l6ZS1taW46IDEuM3JlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtc2l6ZS1tYXg6IDEuNHJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1mb250LXNpemUtbWluLFxuICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1ib3R0b20tbWFyZ2luOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1ib3R0b20tbWFyZ2luICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbjogJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbiAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWZvbnQtc2l6ZS1tYXg6IDEuNnJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1mb250LXNpemUtbWluLFxuICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4vLyB2YWx1ZXM6IGZhbHNlIC8gYnJlYWtwb2ludCBuYW1lIC0gdGhlIHNhbWUgYXMgZm9yIEBtZWRpYSBtaXhpbjtcbi8vIFVzZSBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBoaWRlIGJ1dHRvbiBhdCBhbGxcbiRncmlkLWxheW91dF90ZWFzZXItYnV0dG9uLXZpc2libGUtZnJvbTogJz49dGFibGV0JztcblxuJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlU3VpdGVfQ29udGVudENvbnN0cnVjdG9yLFxuICAgIGNvbHVtbnMsXG4gICAgb25lLWNvbHVtblxuKSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdy0td2l0aC1zaWRlYmFyOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlU3VpdGVfQ29udGVudENvbnN0cnVjdG9yLFxuICAgIGNvbHVtbnMsXG4gICAgbXVsdGlwbGUtY29sdW1uc1xuKSAhZGVmYXVsdDtcblxuLy8gQXBwbHkgbm9ybWFsIGZsb3cgZm9yIHRlYXNlcnMgb24gc21hbGxlc3QgbW9iaWxlLCBpbnN0ZWFkIG9mIHRlYXNlcnMgd2l0aCBoYXJkY29kZWQgMTAwJSB3aWR0aFxuJGdyaWQtbGF5b3V0X3NtYWxsLW1vYmlsZS1zdGFuZGFyZC10ZWFzZXJzLWZsb3c6IGZhbHNlICFkZWZhdWx0O1xuXG4uI3skbnN9Z3JpZC1sYXlvdXQge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fZ3JpZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgICAgICAgZ2FwOiAkZ3JpZC1sYXlvdXRfYnJpY2tzLWd1dHRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCN7JGl0ZW1zUGVyUm93fSwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgIEBlYWNoICRicmVha3BvaW50LFxuICAgICAgICAgICAgICAgICRpdGVtc1BlclJvdyBpbiAkZ3JpZC1sYXlvdXRfYnJpY2tzLXBlci1yb3ctLXdpdGgtc2lkZWJhclxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgICN7JGl0ZW1zUGVyUm93fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgwLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJpY2sge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogJGdyaWQtbGF5b3V0X2JyaWNrLXBhZGRpbmc7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS14MiB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86ICN7JGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLXdpZHRoICogMn0vI3skZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8taGVpZ2h0fTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXkyIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogI3skZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGh9LyN7JGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLWhlaWdodCAqXG4gICAgICAgICAgICAgICAgMn07XG4gICAgICAgIH1cblxuICAgICAgICAmLS14MiN7JHJvb3R9X19icmljay0teTIge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAjeyRncmlkLWxheW91dF9icmljay1yYXRpby13aWR0aCAqIDJ9LyN7JGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLWhlaWdodCAqXG4gICAgICAgICAgICAgICAgMn07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICBAaWYgJGl0ZW1zUGVyUm93ID4gMSB7XG4gICAgICAgICAgICAgICAgICAgICYtLXgyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi0teTIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGVhc2VyIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdyaWQtbGF5b3V0X3NtYWxsLW1vYmlsZS1zdGFuZGFyZC10ZWFzZXJzLWZsb3cpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICAgICAgJi0teDIge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS15MiB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RlYXNlciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1maWd1cmUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWNvbnRlbnQtcGFkZGluZztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWNvbnRlbnQtbGluZS1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLWNvbnRlbnQtaW5uZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1oZWFkbGluZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW47XG4gICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1kYXJrLXNjaGVtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZyhcbiAgICAgICAgICAgICAgICAnZm9udC1zaXplJyxcbiAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtbWFwXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYnJpY2stLXgyICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1tYXBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fdGVhc2VyLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRncmlkLWxheW91dF90ZWFzZXItbGlnaHQtc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zdWJoZWFkbGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKFxuICAgICAgICAgICAgICAgICdmb250LXNpemUnLFxuICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1tYXBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19icmljay0teDIgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1ib3R0b20tbWFyZ2luO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKFxuICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplJyxcbiAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LW1hcFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X190ZWFzZXItLXNjaGVtZS1saWdodCAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1saWdodC1zY2hlbWUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXRleHQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9seS1mbHVpZC1zaXppbmcoXG4gICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1tYXBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19icmljay0teDIgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWZvbnQtbWFwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX3RlYXNlci0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWxpZ2h0LXNjaGVtZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtY3RhIHtcbiAgICAgICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWN0YS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWN0YS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGdyaWQtbGF5b3V0X3RlYXNlci1jdGEtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWN0YS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLXNob3cge1xuICAgICAgICAmLFxuICAgICAgICAmX19icmljayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRncmlkLWxheW91dF9yb3dzLXNlcGFyYXRvci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtI3skZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3ItaGVpZ2h0fTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhZ2VfYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tZ3JpZC10ZWFzZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxufVxuIiwiLy8vIHBvbHktZmx1aWQtc2l6aW5nXG4vLy8gR2VuZXJhdGUgbGluZWFyIGludGVycG9sYXRlZCBzaXplIHZhbHVlcyB0aHJvdWdoIG11bHRpcGxlIGJyZWFrIHBvaW50c1xuLy8vIEBwYXJhbSAkcHJvcGVydHkgLSBBIHN0cmluZyBDU1MgcHJvcGVydHkgbmFtZVxuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcCBvZiB2aWV3cG9ydCB1bml0IGFuZCBzaXplIHZhbHVlIHBhaXJzXG4vLy8gQHJlcXVpcmVzIGZ1bmN0aW9uIGxpbmVhci1pbnRlcnBvbGF0aW9uXG4vLy8gQHJlcXVpcmVzIGZ1bmN0aW9uIG1hcC1zb3J0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKCdmb250LXNpemUnLCAoNTc2cHg6IDIycHgsIDc2OHB4OiAyNHB4LCA5OTJweDogMzRweCkpO1xuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQG1peGluIHBvbHktZmx1aWQtc2l6aW5nKCRwcm9wZXJ0eSwgJG1hcCkge1xuICAgIC8vIEdldCB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGJyZWFrcG9pbnRzXG4gICAgJGxlbmd0aDogbGVuZ3RoKG1hcC1rZXlzKCRtYXApKTtcblxuICAgIC8vIEVycm9yIGlmIHRoZSBudW1iZXIgb2YgYnJlYWtwb2ludHMgaXMgPCAyXG4gICAgQGlmICgkbGVuZ3RoIDwgMikge1xuICAgICAgICBAZXJyb3IgXCJwb2x5LWZsdWlkLXNpemluZygpICRtYXAgcmVxdWlyZXMgYXQgbGVhc3QgdmFsdWVzXCI7XG4gICAgfVxuXG4gICAgLy8gU29ydCB0aGUgbWFwIGJ5IHZpZXdwb3J0IHdpZHRoIChrZXkpXG4gICAgJG1hcDogbWFwLXNvcnQoJG1hcCk7XG4gICAgJGtleXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICAgLy8gTWluaW11bSBzaXplXG4gICAgI3skcHJvcGVydHl9OiBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpO1xuXG4gICAgLy8gSW50ZXJwb2xhdGVkIHNpemUgdGhyb3VnaCBicmVha3BvaW50c1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRsZW5ndGggLSAxKSB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBudGgoJGtleXMsJGkpKSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06IGxpbmVhci1pbnRlcnBvbGF0aW9uKFxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgbnRoKCRrZXlzLCAkaSk6IG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAkaSkpLFxuICAgICAgICAgICAgICAgICAgICBudGgoJGtleXMsICgkaSArIDEpKTogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsICgkaSArIDEpKSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1heG1pbXVtIHNpemVcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbnRoKCRrZXlzLCRsZW5ndGgpKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsICRsZW5ndGgpKTtcbiAgICB9XG59XG5cbi8vLyBsaW5lYXItaW50ZXJwb2xhdGlvblxuLy8vIENhbGN1bGF0ZSB0aGUgZGVmaW5pdGlvbiBvZiBhIGxpbmUgYmV0d2VlbiB0d28gcG9pbnRzXG4vLy8gQHBhcmFtICRtYXAgLSBBIFNBU1MgbWFwIG9mIHZpZXdwb3J0IHdpZHRocyBhbmQgc2l6ZSB2YWx1ZSBwYWlyc1xuLy8vIEByZXR1cm5zIEEgbGluZWFyIGVxdWF0aW9uIGFzIGEgY2FsYygpIGZ1bmN0aW9uXG4vLy8gQGV4YW1wbGVcbi8vLyAgIGZvbnQtc2l6ZTogbGluZWFyLWludGVycG9sYXRpb24oKDMyMHB4OiAxOHB4LCA3NjhweDogMjZweCkpO1xuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpbmVhci1pbnRlcnBvbGF0aW9uKCRtYXApIHtcbiAgICAka2V5czogbWFwLWtleXMoJG1hcCk7XG4gICAgQGlmIChsZW5ndGgoJGtleXMpICE9IDIpIHtcbiAgICAgICAgQGVycm9yIFwibGluZWFyLWludGVycG9sYXRpb24oKSAkbWFwIG11c3QgYmUgZXhhY3RseSAyIHZhbHVlc1wiO1xuICAgIH1cbiAgICAvLyBUaGUgc2xvcGVcbiAgICAkbTogKG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAyKSkgLSBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpKSAvXG4gICAgICAgIChudGgoJGtleXMsIDIpIC0gbnRoKCRrZXlzLCAxKSk7XG5cbiAgICAvLyBUaGUgeS1pbnRlcmNlcHRcbiAgICAkYjogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsIDEpKSAtICRtICogbnRoKCRrZXlzLCAxKTtcblxuICAgIC8vIERldGVybWluZSBpZiB0aGUgc2lnbiBzaG91bGQgYmUgcG9zaXRpdmUgb3IgbmVnYXRpdmVcbiAgICAkc2lnbjogJysnO1xuICAgIEBpZiAoJGIgPCAwKSB7XG4gICAgICAgICRzaWduOiAnLSc7XG4gICAgICAgICRiOiBhYnMoJGIpO1xuICAgIH1cblxuICAgIEByZXR1cm4gY2FsYygjeyRtICogMTAwfXZ3ICN7JHNpZ259ICN7JGJ9KTtcbn1cblxuLy8vIGxpc3Qtc29ydFxuLy8vIFNvcnQgYSBTQVNTIGxpc3Rcbi8vLyBAcGFyYW0gJGxpc3QgLSBBIFNBU1MgbGlzdFxuLy8vIEByZXR1cm5zIEEgc29ydGVkIFNBU1MgbGlzdFxuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBsaXN0LXJlbW92ZVxuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpc3Qtc29ydCgkbGlzdCkge1xuICAgICRzb3J0ZWRsaXN0OiAoKTtcbiAgICBAd2hpbGUgbGVuZ3RoKCRsaXN0KSA+IDAge1xuICAgICAgICAkdmFsdWU6IG50aCgkbGlzdCwgMSk7XG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICAgICAgICAgIEBpZiAkaXRlbSA8ICR2YWx1ZSB7XG4gICAgICAgICAgICAgICAgJHZhbHVlOiAkaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkc29ydGVkbGlzdDogYXBwZW5kKCRzb3J0ZWRsaXN0LCAkdmFsdWUsICdzcGFjZScpO1xuICAgICAgICAkbGlzdDogbGlzdC1yZW1vdmUoJGxpc3QsIGluZGV4KCRsaXN0LCAkdmFsdWUpKTtcbiAgICB9XG4gICAgQHJldHVybiAkc29ydGVkbGlzdDtcbn1cblxuLy8vIG1hcC1zb3J0XG4vLy8gU29ydCBtYXAgYnkga2V5c1xuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcFxuLy8vIEByZXR1cm5zIEEgU0FTUyBtYXAgc29ydGVkIGJ5IGtleXNcbi8vLyBAcmVxdWlyZXMgZnVuY3Rpb24gbGlzdC1zb3J0XG4vLy8gQGF1dGhvciBKYWtlIFdpbHNvbiA8amFrZS5lLndpbHNvbkBnbWFpbC5jb20+XG5AZnVuY3Rpb24gbWFwLXNvcnQoJG1hcCkge1xuICAgICRrZXlzOiBsaXN0LXNvcnQobWFwLWtleXMoJG1hcCkpO1xuICAgICRzb3J0ZWRNYXA6ICgpO1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICAkc29ydGVkTWFwOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAkc29ydGVkTWFwLFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICRrZXk6IG1hcC1nZXQoJG1hcCwgJGtleSksXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuICAgIEByZXR1cm4gJHNvcnRlZE1hcDtcbn1cblxuLy8vIGxpc3QtcmVtb3ZlXG4vLy8gUmVtb3ZlIGFuIGl0ZW0gZnJvbSBhIGxpc3Rcbi8vLyBAcGFyYW0gJGxpc3QgLSBBIFNBU1MgbGlzdFxuLy8vIEBwYXJhbSAkaW5kZXggLSBUaGUgbGlzdCBpbmRleCB0byByZW1vdmVcbi8vLyBAcmV0dXJucyBBIFNBU1MgbGlzdFxuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpc3QtcmVtb3ZlKCRsaXN0LCAkaW5kZXgpIHtcbiAgICAkbmV3TGlzdDogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICAgICAgQGlmICRpICE9ICRpbmRleCB7XG4gICAgICAgICAgICAkbmV3TGlzdDogYXBwZW5kKCRuZXdMaXN0LCBudGgoJGxpc3QsICRpKSwgJ3NwYWNlJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkbmV3TGlzdDtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kaGVhZGVyX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRoZWFkZXJfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuXG4kaGVhZGVyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLy8gSG9yaXpvbnRhbCBhbGlnbiBvZiB0aGUgc2VhcmNoYm94IGlmIGl0J3MgZGlzcGxheWVkIGFzIGEgbGF5ZXIgLSBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgXG4kaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhZGVmYXVsdDtcblxuLy8gSWYgeW91IHdhbnQgdG8gY292ZXIgJ3NlYXJjaCcgaXRlbSBpbiBoZWFkZXIgYnkgc2VhcmNoYm94LCBwcm92aWRlIHByb3BlciBuZWdhdGl2ZSBtYXJnaW4gYmFzZWQgb24geW91ciBkZXNpZ25cbi8vIEl0IHdvcmtzIG9ubHkgaWYgJyRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50JyBoYXMgdmFsaWQgYnJlYWtwb2ludCBhbmQgYCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudGAgPSBmbGV4LWVuZFxuJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtOiAtNi44cmVtICFkZWZhdWx0O1xuXG4vLyBDaGFuZ2UgaW4gZXRjL3ZpZXcueG1sIGlmIG5lY2Vzc2FyeVxuJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGhlYWRlcixcbiAgICBtb2JpbGVfaXNfc3RpY2t5XG4pICFkZWZhdWx0O1xuXG4kaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tbW9iaWxlOiAwICFkZWZhdWx0O1xuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBWYXJpYWJsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gKiBJZiB5b3UgaGF2ZSBtb3JlIGVsZW1lbnRzIG9uIHRvcCwgeW91IGhhdmUgdG8gaW5jbHVkZSB0aGVpciBoZWlnaHQuXG4gKi9cbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0O1xuJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWhlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIChcbiAgICAkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUgYW5kICRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUgIT0gdHJ1ZVxuKSB7XG4gICAgLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbiAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skbnN9Y29udGFpbmVyIHtcbiAgICAgICAgJi0taGVhZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgei1pbmRleDogODAwO1xuICAgICAgICAgICAgICAgIHRvcDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZpeGVkIHBvc2l0aW9uaW5nIHJlcXVpcmVkIHRvIHdvcmsgd2l0aCBvZmZjYW52YXMgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgICogQWxzbywgYXMgYSBmYWxsYmFjayBmb3IgSUUgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBzdGlja3kuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4ubm8tc2Nyb2xsICYsXG4gICAgICAgICAgICAgICAgLmllMTEge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi1tb2JpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31oZWFkZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkaGVhZGVyX2ZvbnQtc2l6ZTtcblxuICAgIEBpZiAoJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlKSB7XG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXJfYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlYWRlcl9ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbGV4OiAwIDEgNHJlbTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1tZW51LWlzLXJpZ2h0KSB7XG4gICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwLjdyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAvLyBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCBhbmRcbiAgICAgICAgICAgICAgICAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQgPT1cbiAgICAgICAgICAgICAgICAnZmxleC1lbmQnXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGVyX3NlYXJjaGJveC1tYXJnaW4tdG8tY292ZXItc2VhcmNoLWl0ZW07XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudCA9PSAnZmxleC1lbmQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGVyX3NlYXJjaGJveC1tYXJnaW4tdG8tY292ZXItc2VhcmNoLWl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX191c2VyLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZsZXg6IDAgMSAzMCU7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAxIDI1JTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDEgMjUlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhY2stYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiA0cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFjay1idXR0b24taWNvbiB7XG4gICAgICAgIGZpbGw6ICRjb2xvcl9ib3JkZXItNzAwO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lJykge1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuLy8gT24gaU9TIHRoZSBzZWFyY2ggaW5wdXQgaGFzIHRvIGJlIGF0IGxlYXN0IDE2cHggbGFyZ2UsXG4vLyBvdGhlcndpc2UgaXQgd2lsbCBuZWVkbGVzc2x5IHRyaWdnZXIgcGFnZSB6b29tIG9uY2UgdGhlIGlucHV0IGlzIGZvY3VzZWQuXG4vLyAtIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI5ODkyNjMvZGlzYWJsZS1hdXRvLXpvb20taW4taW5wdXQtdGV4dC10YWctc2FmYXJpLW9uLWlwaG9uZVxuLy8gLSBodHRwczovL3d3dy53YXJyZW5jaGFuZGxlci5jb20vMjAxOS8wNC8wMi9zdG9wLWlwaG9uZXMtZnJvbS16b29taW5nLWluLW9uLWZvcm0tZmllbGRzL1xuJGhlYWRlci1zZWFyY2hfZm9udC1zaXplLW1vYmlsZTogMS42cmVtICFkZWZhdWx0O1xuXG4vLyBXaWR0aCBvZiB0aGUgc2VhcmNoIGZpZWxkLiBXb3JrcyBvbmx5IGZvciBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgIGJyZWFrcG9pbnQsIGluIG90aGVyIGNhc2UgaXQncyBhbHdheXMgMTAwJVxuJGhlYWRlci1zZWFyY2gtd2lkdGgtYXMtbGF5ZXI6IDEwMCUgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2Nsb3NlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDogNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9idXR0b24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuN3JlbSkgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2ljb24tc2VhcmNoLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfaWNvbi1sb2FkZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjNyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9idXR0b24tY29udGFpbmVyLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDAsXG4gICAgb3BhY2l0eSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1ib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItc2VhcmNoIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoLXdpZHRoLWFzLWxheWVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taW4tb2ZmY2FudmFzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICAgICAgICAgIHRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTFyZW07XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAuYWN0aXZlLXBvcHVwICYge1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRlci1zZWFyY2hfZm9udC1zaXplLW1vYmlsZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyMTA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgKyN7JHJvb3R9X19hY3Rpb24ge1xuICAgICAgICAgICAgICAgIC5hamF4LWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24tY29udGFpbmVyLS1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24tY29udGFpbmVyLS1sb2FkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAyMjA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZS1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1jb250YWluZXItdHJhbnNpdGlvbjtcblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICdvbmx5LWljb24nXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTtcblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICB0cmFuc2Zvcm06ICRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtO1xuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcblxuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfaWNvbi1zZWFyY2gtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sb2FkZXIge1xuICAgICAgICAgICAgc3Ryb2tlOiAkaGVhZGVyLXNlYXJjaF9pY29uLWxvYWRlci1jb2xvcjtcbiAgICAgICAgICAgIHdpZHRoOiAzLjJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDMuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICByaWdodDogMC41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZX0gLSAjeyRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHR9IC0gN3JlbSk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAkaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYm94LXNoYWRvdztcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBxdHktY291bnRlcl9ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl90eXBlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3NwYW4taG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9xdHktY291bnRlci9taXhpbic7XG5cbiRoZWFkZXItdXNlci1uYXZfaXRlbXM6IDMgIWRlZmF1bHQ7IC8vIG51bWJlciBvZiBpdGVtcyBpbiBoZWFkZXIgdXNlciBuYXYgKHdpdGhvdXQgc2VhcmNoIGl0ZW0pXG5cbiRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvcjogJGNvbG9yX3R1bmRvcmEgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aDogMS42cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLWhlaWdodDogJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoICFkZWZhdWx0O1xuXG4vLyBTZXQgdXAgd2hlbiBsYWJlbCBpbiBoZWFkZXIgdXNlciBuYXYgc2hvdWxkIGJlIHZpc2libGVcbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHRydWUgKGFsd2F5cykgfCBmYWxzZSAobmV2ZXIpIHwgYnJlYWtwb2ludFxuJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlOiAnPj10YWJsZXQnICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A6IDAuM3JlbSAhZGVmYXVsdDtcblxuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItbWluaWNhcnQtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi1zaG93OiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuXG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXRvcC1vZmZzZXQ6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGU6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQ6IC0xcmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcDogLTFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItdXNlci1uYXYge1xuICAgICRyb290OiAmO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAkaGVhZGVyLXVzZXItbmF2X2l0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PWZhbHNlKSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAoJGhlYWRlci11c2VyLW5hdl9pdGVtcyArIDEpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICgkaGVhZGVyLXVzZXItbmF2X2l0ZW1zICsgMSkpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICRoZWFkZXItdXNlci1uYXZfaXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbi13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A7XG4gICAgICAgIGNvbG9yOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGUgPT10cnVlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICgkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGUgPT1mYWxzZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7IC8vIExhYmVsIGlzIG5vdCBkaXNwbGF5ZWQgb24gc2NyZWVuIGJ1dCBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVyc1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlfSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LXZpc2libGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS1jb3VudGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXIoKTtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGU7XG4gICAgICAgIHRvcDogJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci10b3Atb2Zmc2V0O1xuICAgICAgICAvLyBvcGFjaXR5OiAwOyAvL21ha2UgcmVkIGRvdCB2aXNpYmxlIGFsd2F5c1xuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtbW9iaWxlICE9JGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtdGFibGV0ICkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LXRhYmxldCAhPSRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LWRlc2t0b3AgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tc2hvdykge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi10aW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnd2lzaGxpc3QnKTtcblxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgICAgIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW5pY2FydCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlKCdtaW5pY2FydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29tcGFyZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlKCdjb21wYXJlJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXZlLWl0ZW1zIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXdpc2hsaXN0LXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICAgICAgICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItbWluaWNhcnQtc2hvdy1lbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWNvbXBhcmUtc2hvdy1lbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0LWNsb25lZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB6LWluZGV4OiAxMjAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgICAgIGxlZnQgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlLXF0eS1iYWRnZSAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgICAgIHRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxLjNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDMuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTUlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICA4NSUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDk1JSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuKCk7XG4gICAgfVxufSIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9xdHktY291bnRlci9ob29rJztcblxuJHF0eS1jb3VudGVyX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2hlaWdodDogMS44ZW0gIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfcGFkZGluZzogMCAwLjZyZW0gIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfYm9yZGVyOiAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2JvcmRlci1yYWRpdXM6IDAuMnJlbSAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLW1pbmljYXJ0LWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLW1pbmljYXJ0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0tY29tcGFyZS1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0tY29tcGFyZS1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLXdpc2hsaXN0LWJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS13aXNobGlzdC1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuXG5AbWl4aW4gcXR5LWNvdW50ZXIoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0tZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkcXR5LWNvdW50ZXItLWRlZmF1bHQtY29sb3I7XG4gICAgYm9yZGVyOiAkcXR5LWNvdW50ZXJfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRxdHktY291bnRlcl9ib3JkZXItcmFkaXVzO1xuICAgIHBhZGRpbmc6ICRxdHktY291bnRlcl9wYWRkaW5nO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogJHF0eS1jb3VudGVyX2ZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXdlaWdodDogJHF0eS1jb3VudGVyX2ZvbnQtd2VpZ2h0O1xuICAgIGhlaWdodDogJHF0eS1jb3VudGVyX2hlaWdodDtcbiAgICAvLyBQcmV2ZW50IElFMTEgYW5kIEVkZ2UgYnVnIHdpdGggYmFja2dyb3VuZCBhbmQgcm91bmQgYm9yZGVyc1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3R5cGUoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIEBpZiAoJHR5cGUgPT0gJ3dpc2hsaXN0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLXdpc2hsaXN0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ21pbmljYXJ0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLW1pbmljYXJ0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcXR5LWNvdW50ZXItLW1pbmljYXJ0LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdjb21wYXJlJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0tY29tcGFyZS1jb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfc3BhbigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgbWluLXdpZHRoOiAxY2g7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpO1xufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBoZWFkbGluZS1ob29rKCkge1xufVxuXG5AbWl4aW4gaGVhZGxpbmUtdGl0bGUtaG9vaygpIHtcbn1cblxuQG1peGluIGhlYWRsaW5lLXN1YnRpdGxlLWhvb2soKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRsaW5lL21peGluJztcblxuLiN7JG5zfWhlYWRsaW5lIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgpO1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkbGluZS10aXRsZSgpO1xuICAgIH1cblxuICAgICZfX3N1YnRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUtc3VidGl0bGUoKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRsaW5lL2hvb2snO1xuXG4kaGVhZGxpbmVfdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1mb250LXNpemU6IDIuNmVtICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbi8vIFNob3cgZmxleGlibGUgZGVjb3JhdGlvbiBsaW5lcyBhdCB0aGUgc2lkZXMgb2YgdGhlIHRpdGxlLlxuJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtbGluZXMtY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kaGVhZGxpbmVfc3VidGl0bGUtY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtc2l6ZTogMS4zZW0gIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHBhZGRpbmc6IDJlbSAwO1xuICAgIG1hcmdpbjogMmVtIDA7XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS1ob29rKCk7XG59XG5cbkBtaXhpbiBoZWFkbGluZS10aXRsZShcbiAgICAkY29sb3I6ICRoZWFkbGluZV90aXRsZS1jb2xvcixcbiAgICAkZm9udC1zaXplOiAkaGVhZGxpbmVfdGl0bGUtZm9udC1zaXplLFxuICAgICRmb250LXdlaWdodDogJGhlYWRsaW5lX3RpdGxlLWZvbnQtd2VpZ2h0LFxuICAgICR0ZXh0LXRyYW5zZm9ybTogJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtLFxuICAgICRsaW5lcy1lbmFibGVkOiAkaGVhZGxpbmVfdGl0bGUtbGluZXMtZW5hYmxlZCxcbiAgICAkbGluZXMtY29sb3I6ICRoZWFkbGluZV90aXRsZS1saW5lcy1jb2xvclxuKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LWZhbWlseTogbGlub3R5cGUtZGlkb3QtaGVhZGxpbmUsIHNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgQGlmICRsaW5lcy1lbmFibGVkIHtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluZXMtY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtdGl0bGUtaG9vaygpO1xufVxuXG5AbWl4aW4gaGVhZGxpbmUtc3VidGl0bGUoXG4gICAgJGNvbG9yOiAkaGVhZGxpbmVfc3VidGl0bGUtY29sb3IsXG4gICAgJGZvbnQtc2l6ZTogJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtc2l6ZSxcbiAgICAkZm9udC13ZWlnaHQ6ICRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXdlaWdodCxcbiAgICAkdGV4dC10cmFuc2Zvcm06ICRoZWFkbGluZV9zdWJ0aXRsZS10ZXh0LXRyYW5zZm9ybVxuKSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRleHQtdHJhbnNmb3JtO1xuICAgIG1hcmdpbjogJGhlYWRsaW5lX3N1YnRpdGxlLW1hcmdpbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtc3VidGl0bGUtaG9vaygpO1xufVxuIiwiLmxhenlsb2FkLFxuLmxhenlsb2FkaW5nLFxuLnN3aXBlci1sYXp5IHtcbiAgICAvLyBBZGRlZCB0byBwcmV2ZW50IGxhenlTaXplcyBmcm9tIGRlbGF5aW5nIGltYWdlcyBsb2FkLlxuICAgIG9wYWNpdHk6IDAuMDAxO1xufVxuXG4ubGF6eWxvYWRbZGF0YS1iZ10ge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5sYXp5bG9hZGVkLFxuLnN3aXBlci1sYXp5LWxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG5cbi8vIEltYWdlIHRlYXNlciBpbWFnZXMgZ2V0IDEwMCUgZXZlbiBiZWZvcmUgbG9hZGluZyxcbi8vIHdoaWNoIHJlc3VsdHMgaW4gYmlnIHBsYWNlaG9sZGVyIGltYWdlIGFuZCBlbXB0eSBzcGFjZSBiZWxvdyB0ZWFzZXJcbi8vIFRvIHByZXZlbnQgYmlnIHBsYWNlaG9sZGVyIGltYWdlcyAxcHggaGVpZ2h0IGlzIGZvcmNlZCBvbiBub3QgeWVzdCBsb2FkZWQgaW1hZ2VzXG4uY3MtaW1hZ2UtdGVhc2VyX19pbWFnZS5sYXp5bG9hZDpub3QoLmxhenlsb2FkZWQpIHtcbiAgICBoZWlnaHQ6IDFweDtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9fY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19pY29uLXdpZHRoOiAxLjM3NWVtICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0OiAxLjM3NWVtICFkZWZhdWx0O1xuXG4uI3skbnN9bGlua3MtYmxvY2stYWRkdG8ge1xuICAgICRyb290OiAmO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fYWRkb24gJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICYtLWNlbnRlcmVkIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICArICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUtLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX3dpc2hsaXN0LWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb21wYXJlIHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4uI3skbnN9bG9nbyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIEZpeGVzIGhlaWdodDogYXV0byBidWcgb24gY2hyb21lLlxuXG4gICAgICAgICYtLWRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tb2JpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuXG4kbWVzc2FnZXNfc3VjY2Vzcy1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc3VjY2Vzcy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2FybmluZy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfbm90aWNlLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl93YXJuaW5nLTIwMCAhZGVmYXVsdDtcbiRtZXNzYWdlc19lcnJvci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZXJyb3ItMjAwICFkZWZhdWx0O1xuXG4kbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfaW5mby1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfbm90aWNlLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19lcnJvci1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbiRtZXNzYWdlc19ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJG1lc3NhZ2VzX3BhZGRpbmc6IDEuMnJlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kbWVzc2FnZXNfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJG1lc3NhZ2VfaWNvbi13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRtZXNzYWdlX2ljb24taGVpZ2h0OiAkbWVzc2FnZV9pY29uLXdpZHRoICFkZWZhdWx0O1xuXG4kbWVzc2FnZV9jbG9zZS1idXR0b24td2lkdGg6IDEuMnJlbSAhZGVmYXVsdDtcbiRtZXNzYWdlX2Nsb3NlLWJ1dHRvbi1oZWlnaHQ6ICRtZXNzYWdlX2Nsb3NlLWJ1dHRvbi13aWR0aCAhZGVmYXVsdDtcblxuJG1lc3NhZ2VzX2lzLWZpeGVkOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGdsb2JhbF9tZXNzYWdlcyxcbiAgICBpc19maXhlZFxuKSAhZGVmYXVsdDtcblxuJG1lc3NhZ2VzX2hhcy1jbG9zZS1idXR0b246IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fVGhlbWUsXG4gICAgZ2xvYmFsX21lc3NhZ2VzLFxuICAgIGhhc19jbG9zZV9idXR0b25cbikgIWRlZmF1bHQ7XG5cbi5tZXNzYWdlcyB7XG4gICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZSxcbi5tZXNzYWdlIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgICBwYWRkaW5nOiAkbWVzc2FnZXNfcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkbWVzc2FnZXNfYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEuMnJlbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkbWVzc2FnZV9pY29uLXdpZHRoICRtZXNzYWdlX2ljb24taGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogNC4zcmVtO1xuXG4gICAgQGlmICgkbWVzc2FnZXNfaGFzLWNsb3NlLWJ1dHRvbikge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0LjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tc3VjY2Vzcyxcbi5tZXNzYWdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZXNzYWdlc19zdWNjZXNzLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1zdWNjZXNzLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX3N1Y2Nlc3MtYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLW5vdGljZSxcbi5tZXNzYWdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZXNzYWdlc19ub3RpY2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXdhcm5pbmcuc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfbm90aWNlLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1pbmZvLFxuLm1lc3NhZ2UuaW5mbyxcbi5tZXNzYWdlLm5vdGljZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX2luZm8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWluZm8uc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfaW5mby1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tZXJyb3IsXG4ubWVzc2FnZS5lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX2Vycm9yLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1lcnJvci5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19lcnJvci1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fdGV4dCxcbi5tZXNzYWdlIHNwYW4ge1xuICAgIGNvbG9yOiAkbWVzc2FnZXNfdGV4dC1jb2xvcjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzIHtcbiAgICAkcm9vdDogJjtcblxuICAgICYtLXNwYWNlLXRvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaWYgKCRtZXNzYWdlc19pcy1maXhlZCkge1xuICAgICAgICAucGFnZS5tZXNzYWdlcyAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIGJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDJyZW07XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWluKGNhbGMoMTAwdncgLSA0cmVtKSwgNTByZW0pO1xuICAgICAgICAgICAgei1pbmRleDogLTQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJltkYXRhLXJvbGU9J2NoZWNrb3V0LW1lc3NhZ2VzJ10ge1xuICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHotaW5kZXg6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJG1lc3NhZ2VzX2hhcy1jbG9zZS1idXR0b24pIHtcbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgd2lkdGg6ICRtZXNzYWdlX2Nsb3NlLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJG1lc3NhZ2VfY2xvc2UtYnV0dG9uLWhlaWdodDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltYWdlcy9pY29ucy9jbG9zZS5zdmcnKSBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfW1lc3NhZ2VzLS1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBlbmFibGVkXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItLWhvdmVyOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3IgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtbGFiZWwtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtdmFsdWUtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGU6IGZhbHNlICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtdGl0bGUtZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Rfb3B0aW9ucy1sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTogMnJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3Nob3ctc3BlY2lhbC1wcmljZTogdHJ1ZSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWVuYWJsZTogdHJ1ZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1oZWlnaHQ6IDNyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvczogJ29ubHktaWNvbicgIWRlZmF1bHQ7XG5cbi4jeyRuc31taW5pY2FydC1wcm9kdWN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmX19pbWFnZS1jb250YWluZXIge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgIC5wcm9kdWN0LWltYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fb3ZlcnZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIH1cblxuICAgICZfX2RldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19icmFuZC13cmFwcGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtYWxpZ25tZW50O1xuICAgIH1cblxuICAgICZfX2JyYW5kIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA3MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbS1wcmljaW5nIHtcbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICYtLXdpdGgtc3BlY2lhbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlX29sZC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlX3NwZWNpYWwtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgbm90ICRtaW5pY2FydC1wcm9kdWN0X3Nob3ctc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlLWxhYmVsLFxuICAgICZfX29wdGlvbnMtc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZVxuICAgICAgICAgICAgJHRyYW5zaXRpb24tZWFzaW5nX3Nsb3dkb3duLTkwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuNHJlbTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICYtLXF0eSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXdyYXBwZXIgKyAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtdmFsdWUtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGUpIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMSAwIDlyZW07XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLFxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyxcbiAgICAgICAgICAgICN7JHJvb3R9X19hY3Rpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjZyZW07XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uLFxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKioqXG4gKiBIaWRlIG5hdGl2ZSBicm93c2VyJ3Mgc2Nyb2xsYmFyXG4gKi9cblxuQG1peGluIGhpZGUtc2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRtaW5pY2FydC1vZmZjYW52YXM6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjogMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZzogMS41cmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc6IDFyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtaGVpZ2h0OiA1LjFyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWl0ZW0tcGFkZGluZzogMS41cmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yOiBmYWxzZSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X19jbG9zZS1pbmNsdWRlLXBzZXVkb2ljb246IHRydWUgIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLXBzZXVkb2ljb24tdHlwZTogJ3BsdXMnICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtbGluZS13aWR0aDogMC4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1jb2xvcjogJGNvbG9yX3RleHQtNjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZzogMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb246ICdjZW50ZXInICFkZWZhdWx0OyAvLyBEZWZhdWx0IHZhbHVlOiBjZW50ZXIuIFBvc3NpYmxlIHZhbHVlczogY2VudGVyIC8gdG9wIC8gYm90dG9tXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb246ICdjZW50ZXInICFkZWZhdWx0OyAvLyBEZWZhdWx0IHZhbHVlOiBjZW50ZXIuIFBvc3NpYmxlIHZhbHVlczogY2VudGVyIC8gbGVmdCAvIHJpZ2h0XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXNwYWNpbmc6IDNyZW0gIWRlZmF1bHQ7XG4vKiBwcmV0dGllci1pZ25vcmUgKi9cbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgZWFzZS1pbiAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplOiAxMXJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc2hvdy1icmVha3BvaW50OiAnPj1sYXB0b3AnICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfcGFkZGluZzogMnJlbSAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfY2xvc2UtYnV0dG9uLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9pdGVtLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2l0ZW0taGVhZGxpbmUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9pdGVtLXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9ib3gtc2hhZG93OiAwIDAgMjFweCAwIHJnYmEoJGNvbG9yX2JhY2tncm91bmQtODAwLCAwLjI3KSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X3dpZHRoOiA0MHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9hY3Rpb25zLW1pbi1oZWlnaHQ6IDE2LjRyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHhcbiAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWw6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIHByb2R1Y3RzX2Nhcm91c2VsLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfaXRlbS1wZXItcm93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBwcm9kdWN0c19jYXJvdXNlbCxcbiAgICBqcyxcbiAgICBjb2x1bW5zQ29uZmlnXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfbWVzc2FnZS10eXBlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X21lc3NhZ2VzXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX21vYmlsZS1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfZGVza3RvcC1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31taW5pY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gI3skbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLWhlaWdodH0pO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtMS41cmVtO1xuICAgICAgICB3aWR0aDogNXJlbTtcbiAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZS1pY29uIHtcbiAgICAgICAgQGlmICgkbWluaWNhcnRfX2Nsb3NlLWluY2x1ZGUtcHNldWRvaWNvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X19jbG9zZS1wc2V1ZG9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkbWluaWNhcnRfX2Nsb3NlLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJG1pbmljYXJ0X19jbG9zZS1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkd2lkdGg6ICRtaW5pY2FydF9fY2xvc2Utd2lkdGgsXG4gICAgICAgICAgICAgICAgJGhlaWdodDogJG1pbmljYXJ0X19jbG9zZS1saW5lLXdpZHRoXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtdGV4dCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogJG1pbmljYXJ0X29mZmNhbnZhcy10aXRsZS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0X2l0ZW0taGVhZGxpbmUtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy10aXRsZS1wYWRkaW5nO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjFyZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1pbmljYXJ0X2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbXMtdG90YWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuXG4gICAgICAgICY6bm90KCN7JHJvb3R9X19pdGVtcy10b3RhbC0tZW1wdHkpIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIC5jb3VudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC01MDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZWRpdC1saW5rIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAuI3skbnN9bGlua19faWNvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWluaWNhcnRfY29udGVudC1iYWNrZ3JvdW5kO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmxvYWQuaW5kaWNhdG9yOmJlZm9yZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJi0tc2Nyb2xsIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9pdGVtLXBhZGRpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRtaW5pY2FydF9pdGVtLWJvcmRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtaXRlbS1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXBhZGRpbmc7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYWN0aW9uLXdyYXBwZXJfYm94LXNoYWRvdztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRtaW5pY2FydF9hY3Rpb25zLW1pbi1oZWlnaHQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgJjpoYXMoLmNzLW1pbmljYXJ0X19lbXB0eSkge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy10aXRsZS1oZWlnaHQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tdmlld2NhcnQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1jYXJvdXNlbCB7XG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZztcbiAgICAgICAgICAgIG1hcmdpbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZyAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tYm9yZGVyO1xuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gJ2xlZnQnIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uID09ICdyaWdodCcge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuXG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X21lc3NhZ2UtdHlwZSA9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkbWluaWNhcnRfbWVzc2FnZS10eXBlID09ICdmaXhlZCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogNHJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1vZmZjYW52YXNfX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXdyYXBwZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbkBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIGFuZCAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsIHtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAuI3skbnN9bWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgICAgICAgJHJvb3Q6ICY7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgLy8gRml4IGZvciB0b28gdGFsbCBjYXJvdXNlbCB0aWxlcyBvbiB0YWJsZXRzXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogOTAwcHgpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDYwcmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1jb250YWluZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgI3skcm9vdH0td3JhcHBlci0tcmVhZHkgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKCN7JG1pbmljYXJ0X3dpZHRofSArICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICgjeyRtaW5pY2FydF93aWR0aH0gKyAoMiAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAmLS1sb2FkaW5nLFxuICAgICAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBhdC1yb290IC5kcmF3ZXItLXZpc2libGUgJiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWluaWNhcnQtb2ZmY2FudmFzLW9wZW4gJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICcjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc2hvdy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAoMiAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JG1pbmljYXJ0X3dpZHRofSArICg0ICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbiA9PSAndG9wJyB7XG4gICAgICAgICAgICAgICAgdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICdib3R0b20nIHtcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9aGVhZGxpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9aGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjtcblxuICAgICAgICAgICAgI3skcm9vdH0td3JhcHBlci0tbG9hZGluZyAmIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgICAgICRyb290OiAmO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzbGlkZXIoXG4gICAgICAgICAgICAgICAgJGNvbHVtbnMtY29uZmlnOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX2l0ZW0tcGVyLXJvdyxcbiAgICAgICAgICAgICAgICAkbS1nYXA6ICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbW9iaWxlLWdhcCxcbiAgICAgICAgICAgICAgICAkZC1nYXA6ICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfZGVza3RvcC1nYXAsXG4gICAgICAgICAgICAgICAgJG5leHQtdmlzaWJsZTogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9uZXh0LXNsaWRlLXZpc2libGUsXG4gICAgICAgICAgICAgICAgJHJvb3Q6ICRyb290XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuI3skbnN9bWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAkbWluaWNhcnQtb2ZmY2FudmFzICE9IHRydWUge1xuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgei1pbmRleDogOTk5OTk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3AgPiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIDEwMCUgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3B9IC0gI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLW1pbmljYXJ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJG1pbmljYXJ0X2JveC1zaGFkb3c7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMzFyZW07XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0X3dpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRvcDogLTAuOHJlbTtcbiAgICAgICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA0LjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAndXRpbHMvc3RyaXAtdW5pdCc7XG5AaW1wb3J0ICd1dGlscy9oaWRlLXNjcm9sbGJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvaG9va3MnO1xuXG4vLyBDYWxjdWxhdGUgY29udGFpbmVyIGJyZWFrcG9pbnQgKyAyICogZWRnZSBndXR0ZXIgYW5kIHRyYW5zZm9ybSB0byAnZW0nIHVuaXQgZm9yIG1lZGlhIHF1ZXJ5XG4kY29udGFpbmVyQnJlYWtwb2ludFB4OiAoXG4gICAgICAgIHN0cmlwLXVuaXQoJHBhZ2VfbWF4LXdpZHRoKSArIDIgKiBzdHJpcC11bml0KCRwYWdlX2VkZ2UtZ3V0dGVyKVxuICAgICkgKiAxMDtcbiRjb250YWluZXJCcmVha3BvaW50RW06ICRjb250YWluZXJCcmVha3BvaW50UHggLyAxNiAqIDFlbTtcbiR0b0NvbnRhaW5lckJyZWFrcG9pbnRFbTogKCRjb250YWluZXJCcmVha3BvaW50UHggLSAxKSAvIDE2ICogMWVtO1xuXG5AbWl4aW4gaXQtZ3JpZCgkbS1nYXA6IDAuOHJlbSwgJGQtZ2FwOiAwLjhyZW0pIHtcbiAgICAkcm9vdDogJjtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuXG4gICAgJjpub3QoLiN7JG5zfWNvbnRhaW5lci0tdXNlLXdob2xlLXdpZHRoKSAmIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcy13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZXMge1xuICAgICAgICAtLWNvbHVtbnM6IDE7XG5cbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXApO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb2x1bW5zKSwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgI3skcm9vdH0tLWl0ZW1zLWluLXJvdy1tb2JpbGUtMiAmIHtcbiAgICAgICAgICAgIC0tY29sdW1uczogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NsaWRlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLWdhcCkgLyAyICsgMik7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC40cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLW9mZnNldCAwLjI1cyBlYXNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGljdHVyZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAtLSBzdHlsZWxpbnQgZG9lc24ndCBrbm93IHRoaXMgbWVkaWEgcXVlcnkgeWV0LiAqL1xuICAgICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1kYXRhOiByZWR1Y2UpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAtLWdhcDogI3skZC1nYXB9O1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggOCB7XG4gICAgICAgICAgICAmLS1pdGVtcy1pbi1yb3ctI3skaX0gI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgLS1jb2x1bW5zOiAjeyRpfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAmLS1pdGVtcy1pbi1yb3ctNDpub3QoI3skcm9vdH0tLWljb24pICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgLS1jb2x1bW5zOiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaXQtZ3JpZC1ob29rKCRtLWdhcCwgJGQtZ2FwKTtcbn1cblxuQG1peGluIHNsaWRlci1lc3NlbnRpYWxzKCRyb290OiAkcm9vdCkge1xuICAgICN7JHJvb3R9X19zbGlkZXMtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXApIDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG5cbiAgICAgICAgQHN1cHBvcnRzIChzY3JvbGwtYmVoYXZpb3I6IHNtb290aCkge1xuICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoaWRlLXNjcm9sbGJhcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3NsaWRlIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxleDogMCAwIHZhcigtLXNpemUpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG4gICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JHJvb3R9X19pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1lc3NlbnRpYWxzLWhvb2soJHJvb3QpO1xufVxuXG5AbWl4aW4gc2xpZGVyKFxuICAgICRjb2x1bW5zLWNvbmZpZzogJ2NsYXNzLWJhc2VkJyxcbiAgICAkbS1nYXA6IDAuOHJlbSxcbiAgICAkZC1nYXA6IDAuOHJlbSxcbiAgICAkbmV4dC12aXNpYmxlOiAzLjJyZW0sXG4gICAgJHJvb3Q6ICcmJ1xuKSB7XG4gICAgLS1nYXA6ICN7JG0tZ2FwfTtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gI3skbmV4dC12aXNpYmxlfSk7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogI3skY29udGFpbmVyQnJlYWtwb2ludEVtfSkge1xuICAgICAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgICAgICAtLWJhc2Utc2l6ZTogY2FsYygjeyRwYWdlX21heC13aWR0aH0gLSAjeyRuZXh0LXZpc2libGV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRyb290fS0tdXNlLXdob2xlLXNjcmVlbjpub3QoI3skcm9vdH0tLWZ1bGwtd2lkdGgtc2xpZGVyKSB7XG4gICAgICAgICAgICAtLWJhc2Utc2l6ZTogMTAwJTtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1tYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLW1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSBhbmQgKG1pbi13aWR0aDogI3skY29udGFpbmVyQnJlYWtwb2ludEVtfSkge1xuICAgICAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgICAgICAtLWJhc2Utc2l6ZTogI3skcGFnZV9tYXgtd2lkdGh9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLS1zaXplOiB2YXIoLS1iYXNlLXNpemUpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAtLWdhcDogI3skZC1nYXB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsYXNzLWJhc2VkIGNvbHVtbnMgY29uZmlnIHJlbGF0ZXMgdG8gY2xhc3NuYW1lcywgbGlrZSAnLS1pdGVtcy1pbi1yb3ctNCdcbiAgICAgKiB3aGljaCBhcmUgYWRkZWQgdG8gZWxlbWVudHMsIGRlcGVuZGluZyBvbiB0aGUgQ0MgQ29tcG9uZW50cyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIEBpZiAkY29sdW1ucy1jb25maWcgPT0gJ2NsYXNzLWJhc2VkJyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggOCB7XG4gICAgICAgICAgICAgICAgJiN7JHJvb3R9LS1pdGVtcy1pbi1yb3ctI3skaX0ge1xuICAgICAgICAgICAgICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRpfSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgjeyRpIC0gMX0gKiB2YXIoLS1nYXApKSAvICN7JGl9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgJiN7JHJvb3R9LS1pdGVtcy1pbi1yb3ctNDpub3QoI3skcm9vdH0tLWljb24pIHtcbiAgICAgICAgICAgICAgICAtLXNpemU6IGNhbGModmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoMSAqIHZhcigtLWdhcCkgLyAyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGJhc2VJdGVtc1BlclJvdzogbWFwLWdldCgkY29sdW1ucy1jb25maWcsICdwaG9uZScpO1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgICAgICAjeyRiYXNlSXRlbXNQZXJSb3d9IC1cbiAgICAgICAgICAgICAgICAjeyRiYXNlSXRlbXNQZXJSb3cgLVxuICAgICAgICAgICAgICAgIDF9ICpcbiAgICAgICAgICAgICAgICB2YXIoLS1nYXApIC9cbiAgICAgICAgICAgICAgICAjeyRiYXNlSXRlbXNQZXJSb3d9XG4gICAgICAgICk7XG5cbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRpdGVtc1BlclJvdyBpbiAkY29sdW1ucy1jb25maWcge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gI3skaXRlbXNQZXJSb3d9IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGl0ZW1zUGVyUm93IC0gMX0gKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAjeyRpdGVtc1BlclJvd30pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qICBjb250YWluZXIgcGFkZGluZyBmaXggICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JHRvQ29udGFpbmVyQnJlYWtwb2ludEVtfSkge1xuICAgICAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWVzc2VudGlhbHMoJHJvb3QpO1xuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWhvb2soJGNvbHVtbnMtY29uZmlnLCAkbS1nYXAsICRkLWdhcCwgJG5leHQtdmlzaWJsZSwgJHJvb3QpO1xufVxuXG5AbWl4aW4gc2xpZGVyLW1vYmlsZSgkbS1nYXA6IDAuOHJlbSwgJG5leHQtdmlzaWJsZTogMy4ycmVtLCAkcm9vdDogJyYnKSB7XG4gICAgLS1nYXA6ICN7JG0tZ2FwfTtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gI3skbmV4dC12aXNpYmxlfSk7XG4gICAgLS1zaXplOiB2YXIoLS1iYXNlLXNpemUpO1xuXG4gICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICBtYXJnaW4tbGVmdDogLSN7JHBhZ2VfZWRnZS1ndXR0ZXJ9O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRwYWdlX2VkZ2UtZ3V0dGVyfTtcblxuICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItZXNzZW50aWFscygkcm9vdCk7XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItbW9iaWxlLWhvb2soJG0tZ2FwLCAkbmV4dC12aXNpYmxlLCAkcm9vdCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG1vZGFsX3RpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJG1vZGFsX2luc2lkZS1ib3JkZXJzOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbW9kYWxfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1vZGFsX3NsaWRlLW1vYmlsZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbW9kYWxfYm94LXNoYWRvdzogJGJveC1zaGFkb3dfYmFzZSAhZGVmYXVsdDtcbiRtb2RhbF9ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0O1xuJG1vZGFsLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtb2RhbF90ZXh0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGggIWRlZmF1bHQ7XG4kbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4ubW9kYWwtc2xpZGUsXG4ubW9kYWwtcG9wdXAsXG4ubW9kYWwtY3VzdG9tIHtcbiAgICAmLmNvbmZpcm0ge1xuICAgICAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbW9kYWxfYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJG1vZGFsX2JveC1zaGFkb3c7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtb2RhbF9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXI6ICRtb2RhbC1ib3JkZXI7XG4gICAgfVxuXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJG1vZGFsX3RleHQtZm9udC1zaXplO1xuICAgIH1cblxuICAgIC5tb2RhbC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmFjdGlvbi1jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBtYXJnaW46IDEuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG4gICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1vZGFsX2luc2lkZS1ib3JkZXJzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgICAucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU3R5bGUgZm9yIGNoZWNrb3V0IG1vZGFscyBoYXZlIHZlcnkgaGlnaCBzcGVjaWZpY2l0eSBpbiBtYWdlbnRvXG4gICAgICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b246b25seS1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkbW9kYWxfdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1vZGFsX2luc2lkZS1ib3JkZXJzO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUge1xuICAgIC5tb2RhbC1pbm5lci13cmFwW2NsYXNzXSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbF9zbGlkZS1tb2JpbGUtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFsLXNsaWRlIHtcbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgICAucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEZpeCBidWcgd2l0aCBubyBjbG9zaW5nIG92ZXJsYXkgb24gbW9iaWxlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21hZ2VudG8vbWFnZW50bzIvaXNzdWVzLzczOTkgZm9yIGRldGFpbHNcbi5tb2RhbC1wb3B1cCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gICAgJi5hZ3JlZW1lbnRzLW1vZGFsIHtcbiAgICAgICAgLm1vZGFsLXRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5taW5pY2FydC1yZW1vdmUtaXRlbSB7XG4gICAgICAgIC5tb2RhbC10aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFsLWN1c3RvbSB7XG4gICAgJi5jYXJ0LWl0ZW1zIHtcbiAgICAgICAgLm1vZGFsLXRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucGFnZS1sYXlvdXQtY2hlY2tvdXQge1xuICAgIC5tb2RhbC1wb3B1cDpub3QoLl9pbm5lci1zY3JvbGwpIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuXG4gICAgLm1vZGFsLXNsaWRlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2NXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFscy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWxzX292ZXJsYXktYmFja2dyb3VuZDtcbn1cblxuYm9keS5faGFzLW1vZGFsLm1vZGFsLW5vLXNjcm9sbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBpbml0aWFsO1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKioqXG4gKiBVc2luZyBwc3VlZG8gZWxlbWVudHMgdG8gbWFpbnRhaW4gYW4gZWxlbWVudHMgYXNwZWN0IHJhdGlvLCBldmVuIGFzIGl0IHNjYWxlc1xuICogSXQncyB1c2luZyBvbmx5IGZvciBJRTExIGFuZCBFZGdlICh2ZXJzaW9uIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQpIGJyb3dzZXJzXG4gKiBGb3IgYnJvd3NlcnMgd2hpY2ggc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQsIHdlIGFyZSB1c2luZyBtaXhpbnMgY29udGFpbiBgcmVzZXRgIGluIG1peGluIG5hbWVcbiAqIHRvIG92ZXJyaWRlIGRlZmF1bHQgbWl4aW5zIChwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudClcbiAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG4gKiBAcGFyYW0ge251bWJlcn0gJHdpZHRoOiB3aWR0aCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7bnVtYmVyfSAkaGVpZ2h0OiBoZWlnaHQgb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge3N0cmluZ30gJGNvbnRlbnRDbGFzczogY2xhc3Mgb2YgdGhlIGRpcmVjdCBjaGlsZCBlbGVtZW50IHRvIGJlIHBvc2l0aW9uZWQgYWJzb2x1dGVseTtcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gJGF1dG9wb3NpdGlvbjogdGVsbHMgaWYgaXRlbSBzaGFsbCB0YWtlIDEwMCUgb2YgcGFyZW50IHNpemUgb3IgaWYgaXQgY2FuIGJlIHdpZGVyL2hpZ2hlciBpZiBuZWVkZWQ7XG4gKi9cblxuQGZ1bmN0aW9uIGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpIHtcbiAgICBAcmV0dXJuICgkaGVpZ2h0IC8gJHdpZHRoKSAqIDEwMCU7XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHdpZHRoLCAkaGVpZ2h0LCAkY2hpbGRDbGFzcywgJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpO1xuICAgIH1cblxuICAgIC4jeyRjaGlsZENsYXNzfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLXJlc2V0KCRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIC4jeyRjaGlsZENsYXNzfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLWNoaWxkLXBvc2l0aW9uKCRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAaWYgJGF1dG9wb3NpdGlvbiB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpO1xuICAgIH1cbn1cblxuQG1peGluIGFzcGVjdC1yYXRpby1vdmVycmlkZS1yZXNldCgpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvYXNwZWN0LXJhdGlvJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRuYXZpZ2F0aW9uX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb25fb3ZlcmxheS1zaG93OiBmYWxzZSAhZGVmYXVsdDtcbi8vIEJveCBzaGFkb3cgZWZmZWN0IGFwcGxpZWQgZm9yIHRoZSBmbHlvdXQuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYm94LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMTUpICFkZWZhdWx0O1xuLy8gRmx5b3V0IGJhY2tncm91bmQgY29sb3IuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuLy8gQ29sb3Igb2YgdGhlIGxpbmsuXG4kbmF2aWdhdGlvbl9saW5rLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4vLyBDb2xvciBvZiB0aGUgbGluayBpbiB0aGUgZmx5b3V0IG9uIGhvdmVyLlxuJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuLy8gQm90dG9tIGJvcmRlciBjb25maWd1cmF0aW9uIGZvciBmbHlvdXQgY2F0ZWdvcnkgbGlua3MuXG4kbmF2aWdhdGlvbl9saW5rLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGlzdHMtbWFyay1wYXJlbnQtb24taG92ZXI6IHRydWUgIWRlZmF1bHQ7XG5cbiRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aCAhZGVmYXVsdDtcbi8vIHdvcmtzIG9ubHkgZm9yIHN2ZyBpY29uc1xuJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31uYXZpZ2F0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9mb250LXNpemU7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGNvbHVtbnM6IGF1dG8gMTtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmKy4jeyRuc31uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRuYXZpZ2F0aW9uX2xpc3RzLW1hcmstcGFyZW50LW9uLWhvdmVyKSB7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgICAgICYuYWN0aXZlLFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkge1xuICAgICAgICAgICAgICAgICAgICA+I3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAmLS1tYWluIHtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICAgICAgICAgJiN7JHJvb3R9X19pdGVtLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAmOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA+I3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluazpub3QoI3skcm9vdH1fX2xpbmstLXdpdGgtaWNvbikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAvKiBJRSAxMSAqL1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgICAgIC8qIFRoZW9yZXRpY2FsbHkgRkYgMjArICovXG4gICAgICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAgICAgLyogSUUgMTEgKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuOWVtIDEuMDVlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstaWNvbi0tc3ZnIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIGxlZnQ6IDAuOWVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuOWVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0O1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFpbjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aCArIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24td3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLWhlaWdodDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjhlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLWhlaWdodDtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstLWNhdGVnb3J5ICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXN2ZyB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXByb2R1Y3RzLXF0eSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtbmF2aWdhdGlvbl9faXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluOjphZnRlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLW5hdmlnYXRpb25fX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluOjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy9TdHlsaW5nIGZvciBjYXRlZ29yaWVzIGxldmVsXzEgd2l0aCBubyBzdWJjYXRlZ29yaWVzXG4gICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4+I3skcm9vdH1fX2xpbmstLWxldmVsXzEge1xuICAgICAgICAvLyB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBhZGRpbmc6IDAuOWVtIDEuNWVtO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgIH1cblxuICAgICZfX2ZseW91dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogJG5hdmlnYXRpb25fZmx5b3V0LWJhY2tncm91bmQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogMTAwMTsgLy8gTWFrZSBzdXJlIGZseW91dHMgY292ZXIgZ2FsbGVyeSBuYXYuXG4gICAgICAgIGJveC1zaGFkb3c6ICRuYXZpZ2F0aW9uX2ZseW91dC1ib3gtc2hhZG93O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuXG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMxSEF3Q0FBQUFDMGxFUVZSNDJtTmtZQUFBQUFZQUFqQ0IwQzhBQUFBQVNVVk9SSzVDWUlJPSk7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZXh0cmFzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX3RlYXNlciB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcm9kdWN0cyB7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcbiAgICAgICAgbWluLXdpZHRoOiAyNHJlbTtcblxuICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRuYXZpZ2F0aW9uX2xpbmstYm9yZGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMS4xZW0gMS4wNWVtIDEuNTVlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLWxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKCR3aWR0aDogJHRpbGVfYXNwZWN0LXJhdGlvLXdpZHRoLFxuICAgICAgICAgICAgJGhlaWdodDogJHRpbGVfYXNwZWN0LXJhdGlvLWhlaWdodCxcbiAgICAgICAgICAgICRjaGlsZENsYXNzOiAjeyRuc31wcm9kdWN0LXRpbGUsXG4gICAgICAgICAgICAkYXV0b3Bvc2l0aW9uOiB0cnVlKTtcbiAgICB9XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDNyZW0sIDApO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLCAwLjk3LCAwLjA1LCAwLjk5KTtcblxuICAgICAgICBAaWYgJG5hdmlnYXRpb25fb3ZlcmxheS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgYW5kIChncmlkLWF1dG8tZmxvdzogcm93KSB7XG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvLXJlc2V0KCRjaGlsZENsYXNzOiAjeyRuc31wcm9kdWN0LXRpbGUsXG4gICAgICAgICAgICAgICAgJGF1dG9wb3NpdGlvbjogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLW5hdmlnYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9faXRlbS5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWluLmFjdGl2ZSB7XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstLW1haW4ge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRpbnB1dF9wYWRkaW5nOiAwLjcxNWVtIDFlbSAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYWx0byAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9tYXJnaW46IDAgIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9wYWRkaW5nOiAwIDEuNXJlbSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfZm9ybS1tYXgtd2lkdGg6IDM0cmVtICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvczogJ29ubHktaWNvbicgIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXdpZHRoOiAwLjhlbSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLWhlaWdodDogMC44ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31uZXdzbGV0dGVyIHtcbiAgICBtYXJnaW46ICRuZXdzbGV0dGVyX21hcmdpbjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkbmV3c2xldHRlcl9wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRuZXdzbGV0dGVyX2Zvcm0tbWF4LXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9ybS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJhY2tncm91bmQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyOiAxcHggJGNvbG9yX2FsdG8gc29saWQgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZDogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19UaGVtZSxcbiAgICBoZWFkZXIsXG4gICAgbW9iaWxlX3NlYXJjaF9pbl9vZmZjYW52YXNcbikgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZC1saXN0LWxldmVsMS10b3AtcG9zaXRpb246IDE0JSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3IgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWFjdGl2ZS1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZzogMi40cmVtIDJyZW0gIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnOiB0cnVlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGg6IDAuN3JlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodDogMC4xcmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3IgIWRlZmF1bHQ7XG4vLyBCZWxvdyBuYXZpZ2F0aW9uX2ljb24gc2V0dGluZ3MgYXJlIHVzYWJsZSBvbmx5IGlmIHlvdSB1c2UgcHNldWRvaWNvblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdHlwZTogJ2Fycm93JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLW5leHQ6ICdyaWdodCcgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1wcmV2OiAnbGVmdCcgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXgtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWFyZ2luLXJpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9b2ZmY2FudmFzLW5hdmlnYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kO1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICYtLWxldmVsXzAsXG4gICAgICAgICYtLWN1cnJlbnQsXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsXzAsXG4gICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgPiAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMDUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG5cbiAgICAgICAgICAgIC8vIFByZXZlbnQgb3ZlcmxhcHBpbmcgb2Ygc2VhcmNoIG9uIG5hdmlnYXRpb24gbGlzdFxuICAgICAgICAgICAgQGlmICgkb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZC1saXN0LWxldmVsMS10b3AtcG9zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG5cbiAgICAgICAgJi0td2l0aC1pY29uIHtcbiAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC1zaXplO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyO1xuXG4gICAgICAgICAgICBAaWYgbm90KCRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNpZ24taW4sXG4gICAgICAgICYtLXNpZ24tb3V0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvci0taG92ZXI7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhcmVudCxcbiAgICAgICAgJi0tcmV0dXJuIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXJlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJldHVybiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2Zykge1xuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tcHJldixcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogYXV0b1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aXZlIHtcbiAgICAgICAgPiAjeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbi13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ7XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgIG1heC1oZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fdGV4dC1wYXJlbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS02O1xuICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtNDAwO1xuICAgIH1cblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgJl9fc2VhcmNoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICB9XG59XG4uY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgZmxleDogMSAxIDI1JTtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgZmlsbDogIzAwMDAwMDtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICBjb2xvcjogIzY5Njk2OTtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24ge1xuICB3aWR0aDogMS42cmVtO1xuICBoZWlnaHQ6IDEuNnJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgZmlsbDogIzQ4NDg0ODtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIGNvbG9yOiAjNjk2OTY5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG4uY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG4gIHBhZGRpbmc6IDAgMC42cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICBmb250LXdlaWdodDogNzAwO1xuICBoZWlnaHQ6IDEuOGVtO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMC41cmVtO1xuICB0b3A6IC0wLjVyZW07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICByaWdodDogLTFyZW07XG4gIH1cbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGNvbG9yOiAjMDAwO1xuICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG59XG4uY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG4uY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWhhdmUtaXRlbXMge1xuICBvcGFjaXR5OiAxO1xufVxuLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNsb25lZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTIwMDtcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IHRvcCAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSwgbGVmdCAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICBhbmltYXRpb246IG1vdmUtcXR5LWJhZGdlIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICB0b3A6IDAuNXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgIHRvcDogMS4zcmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtYW5pbWF0aW5nIHtcbiAgICB0b3A6IDMuNXJlbTtcbiAgfVxufVxuQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA4NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB9XG4gIDk1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbi5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICBtaW4td2lkdGg6IDFjaDtcbn1cblxuLmNzLW9mZmNhbnZhcy10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlcjogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jcy1vZmZjYW52YXMtdG9nZ2xlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmZvY3VzLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTpob3ZlciB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAycHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xufVxuLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6Zm9jdXMsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24sIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgd2lkdGg6IDEuOHJlbTtcbiAgaGVpZ2h0OiAwLjJyZW07XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgdHJhbnNmb3JtIDAuM3M7XG59XG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTI1MCUsIDApO1xufVxuLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7XG59XG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwLjVyZW07XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogIzIxMjEyMTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcbn1cbi5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICBib3R0b206IDJyZW07XG4gIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDsgLy8gTW92ZSBiZWxvdyB0aGUgbmF2aWdhdGlvbiBvbiBtb2JpbGUuXG4kb2ZmY2FudmFzX3RvcC1vZmZzZXQtdGFibGV0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0ICFkZWZhdWx0OyAvLyBNb3ZlIGJlbG93IHRoZSBuYXZpZ2F0aW9uIG9uIHRhYmxldC5cbiRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lOiAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfb3ZlcmxheS1iYWNrZ3JvdW5kOiAkbW9kYWxzX292ZXJsYXktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19kcmF3ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX3NwaW5uZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMzAwO1xuXG4gICAgJl9fZHJhd2VyLFxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgYm90dG9tOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB0b3A6ICRvZmZjYW52YXNfdG9wLW9mZnNldC10YWJsZXQ7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLW1pbmktY2FydCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlfSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAvLyBTZXR0aW5nIDFtcyBiZWNhdXNlIDAgZG9lc24ndCBzZWVtIHRvIHdvcmsgYW5kIHdlIG5lZWQgc2VhbWxlc3MgdHJhbnNpdGlvbiBmb3Igc2NhbGUgaGVyZS5cbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxbXMgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbWluaS1jYXJ0ICYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm92ZXJsYXkge1xuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzX292ZXJsYXktYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kcmF3ZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXNfZHJhd2VyLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXNpZGVfbGVmdCAmIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXNpZGVfcmlnaHQgJiB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1tZW51LWlzLXJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kcmF3ZXIge1xuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NwaW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA2cmVtO1xuICAgICAgICBoZWlnaHQ6IDZyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAyMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3JlbTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwYWdlLWJvdHRvbV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kcGFnZS1ib3R0b21fZGl2aWRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31wYWdlLWJvdHRvbSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAucGFnZS1wcmludCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgJi0tY2lyY2xlIHtcbiAgICAgICAgICAgIHdpZHRoOiA0LjdyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDQuN3JlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNC43cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogNC43cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBjb2xvcjogJHBhZ2UtYm90dG9tX3RleHQtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC42cmVtO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2dyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5mbyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTclO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaGlwcGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5bWVudCB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaGlwcGluZyxcbiAgICAgICAgJi0tcGF5bWVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLjJyZW07XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYm90dG9tX2RpdmlkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGhlaWdodDogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGVybWVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMi4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGhsIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDguNnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheXBhbCB7XG4gICAgICAgICAgICB3aWR0aDogNi4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlzYSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA1LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYXN0ZXJjYXJkIHtcbiAgICAgICAgICAgIHdpZHRoOiAzLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1rbGFybmEtc29mb3J0IHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWtsYXJuYSB7XG4gICAgICAgICAgICB3aWR0aDogN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdscyB7XG4gICAgICAgICAgICB3aWR0aDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdpcm9wYXkge1xuICAgICAgICAgICAgd2lkdGg6IDQuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVjIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXlkaXJla3Qge1xuICAgICAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sYXN0c2NocmlmdCB7XG4gICAgICAgICAgICB3aWR0aDogNi4xNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZvcmthc3NlIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWNobnVuZyB7XG4gICAgICAgICAgICB3aWR0aDogNi4xNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tcGFnZS1ib3R0b20ge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHBhZ2UtdGl0bGVfZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTEgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV90ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlX2ZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRwYWdlLXRpdGxlLWNhdGVnb3J5X2ZvbnQtc2l6ZTogOXJlbSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlLWNhdGVnb3J5X2ZvbnQtc2l6ZS1tb2JpbGU6IDMuNXJlbSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlLWNhdGVnb3J5X2ZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG5cbiRwYWdlLXRpdGxlX3NwYW4tY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlX3NwYW4tZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlX3NwYW4tcGFkZGluZzogMCAhZGVmYXVsdDtcblxuLnBhZ2UtdGl0bGUge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJHBhZ2UtdGl0bGVfZm9udC1zaXplKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHBhZ2UtdGl0bGVfdGV4dC10cmFuc2Zvcm07XG4gICAgZm9udC13ZWlnaHQ6ICRwYWdlLXRpdGxlX2ZvbnQtd2VpZ2h0O1xuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuXG4gICAgJl9fc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkcGFnZS10aXRsZV9zcGFuLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJHBhZ2UtdGl0bGVfc3Bhbi1mb250LXdlaWdodDtcbiAgICAgICAgcGFkZGluZzogJHBhZ2UtdGl0bGVfc3Bhbi1wYWRkaW5nO1xuICAgIH1cbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyB7XG4gICAgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBsaW5vdHlwZS1kaWRvdC1oZWFkbGluZSwgc2VyaWY7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcGFnZS10aXRsZS1jYXRlZ29yeV9mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHBhZ2UtdGl0bGUtY2F0ZWdvcnlfZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwYWdlLXRpdGxlLWNhdGVnb3J5X2ZvbnQtc2l6ZS1tb2JpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiRjb25maWd1cmFibGUtcHJvZHVjdHMtc2hvdy1mcm9tLXByaWNlLWxhYmVsOiBmYWxzZTtcblxuLnByaWNlLWJveCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgQGluY2x1ZGUgcHJpY2VCb3goKTtcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbGFiZWwtY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRwcmljZS1ib3hfbGFiZWwtZGlzcGxheS1jb2xvbikge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBib2R5Om5vdCgucGFnZS1wcm9kdWN0LWJ1bmRsZSwgLnBhZ2UtcHJvZHVjdC1ncm91cGVkKVxuICAgICAgICAgICAgICAgIHA6bm90KC5wcmljZS1mcm9tLCAucHJpY2UtdG8pXG4gICAgICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWwge1xuICAgICAgICAubm9ybWFsLXByaWNlIHtcbiAgICAgICAgICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5wcmljZS1mcm9tLFxuICAgIC5wcmljZS10byB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgIH1cblxuICAgIC4jeyRuc31wcmljZS0tcGRwX2RhaWx5ZGVhbC1jb3VudGRvd24gJiB7XG4gICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9YnVuZGxlLWJveF9fYWRkIHtcbiAgICAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgfVxufVxuXG4ubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICctJztcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG4iLCIvLyBwcmljZS1ib3hcbi8vIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIGZvciBzdHlsaW5nIHByaWNlcyBieSBtYXJrdXAgcHJvdmlkZWQgYnkgTWFnZW50bzJcbi8vXG4vLyBTZWUgaHR0cDovL3dhcnBzcGlyZS5jb20va3NzLyBmb3IgZG9jdW1lbnRhdGlvbiBndWlkZWxpbmVzLlxuLy8gVmVyc2lvbiAwLjAuMVxuQG1peGluIHByaWNlQm94KCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9sZC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9sZCBwcmljZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZCBmb3IgcHJpY2VzIHdoZXJlIG5vcm1hbCBwcmljZSBpcyBcIkFzIGxvdyBhcyB7cHJpY2V9XCJcbiAgICAgICAgJi5uby1kaXNwbGF5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbiAqIGh0dHBzOi8vd3d3LnNhc3NtZWlzdGVyLmNvbS9naXN0LzlmYTE5ZDI1NDg2NGYzM2Q0YTgwXG4gKiBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbiAqIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgICAgICRfOiBsb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gJy0nO1xuICAgICRudW1iZXJzOiAoXG4gICAgICAgICcwJzogMCxcbiAgICAgICAgJzEnOiAxLFxuICAgICAgICAnMic6IDIsXG4gICAgICAgICczJzogMyxcbiAgICAgICAgJzQnOiA0LFxuICAgICAgICAnNSc6IDUsXG4gICAgICAgICc2JzogNixcbiAgICAgICAgJzcnOiA3LFxuICAgICAgICAnOCc6IDgsXG4gICAgICAgICc5JzogOSxcbiAgICApO1xuXG4gICAgQGZvciAkaSBmcm9tIGlmKCRtaW51cywgMiwgMSkgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgICAgIEBpZiBub3QoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgQHJldHVybiB0by1sZW5ndGgoXG4gICAgICAgICAgICAgICAgaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksXG4gICAgICAgICAgICAgICAgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJGRpZ2l0cyA9PSAwKSB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3N0cmluZy10by1udW1iZXInO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4vLyBHZW5lcmFsXG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI6IDFyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2hvdmVyLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfaG92ZXItYW5pbWF0aW9uLWJyZWFrcG9pbnQ6ICc+PWxhcHRvcCcgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3BhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWxpZ25tZW50OiBjZW50ZXIgIWRlZmF1bHQ7IC8vIGxlZnQgfCBjZW50ZXIgfCByaWdodFxuJHByb2R1Y3QtdGlsZV9pbml0aWFsLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfZ2FsbGVyeSAhZGVmYXVsdDtcblxuLy8gSWYgcHJvZHVjdCB0aWxlIGRlc2lnbiBoYXMgYSBoaWRkZW4gYm90dG9tIHBhcnQgdGhhdCBpcyBzbGlkZWQgdXAgb24gaG92ZXIgc2V0IGJvdGggYmVsb3cgdmFyaWFibGVzXG4kcHJvZHVjdC10aWxlX21haW4tYWZ0ZXItc2xpZGUtb24taG92ZXI6IGZhbHNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLWhlaWdodDogJ2F1dG8nICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9jb250ZW50LWhlaWdodDogJ2F1dG8nICFkZWZhdWx0O1xuXG4vLyBQcm9kdWN0IG5hbWVcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTogMSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0OiAxLjhyZW0gIWRlZmF1bHQ7IC8vIE1VU1QgQkUgYSBudW1iZXIgdmFsdWUgd2l0aCB1bml0LCBjYW5ub3QgYmUgJ2luaGVyaXQnXG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci12aXNpdGVkOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXJnaW46IDBweCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcblxuLy8gQmFkZ2VzXG4kcHJvZHVjdC10aWxlX2JhZGdlcy16LWluZGV4OiAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMtZGlyZWN0aW9uOiAndmVydGljYWwnICFkZWZhdWx0OyAvLyB2ZXJ0aWNhbCBvciBob3Jpem9udGFsXG4kcHJvZHVjdC10aWxlX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tcHJvcDogdG9wICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3A6IGxlZnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tdmFsdWU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tdmFsdWU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JhZGdlcy1pdGVtLW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gNFxufVxuXG4hZGVmYXVsdDtcblxuLy8gU3dhdGNoZXNcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ6IDIuNnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtbWFyZ2luOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIDAgJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlX2FsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gQnJhbmRcbiRwcm9kdWN0LXRpbGVfYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JyYW5kLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYnJhbmQtYWxpZ25tZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFJldmlld1xuJHByb2R1Y3QtdGlsZV9yZXZpZXctbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIEFkZHRvXG4kcHJvZHVkY3QtdGlsZV9hZGR0by1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWRkdG8tbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIFF0eSBzd2ljdGhlclxuJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoOiAxMXJlbSAhZGVmYXVsdDtcbiRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci1zcGFjZS1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIEFkZHRvY2FydFxuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtbWFyZ2luOiAwIDAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXdpZHRoOiA4cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtc2hvdy1vbmx5LW9uLWhvdmVyOiB0cnVlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtcmVkdWNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3RvY2tcbiRwcm9kdWN0LXRpbGVfc3RvY2stZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N0b2NrLWluLWNvbG9yOiAkY29sb3JfYXBwbGUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N0b2NrLW91dC1vZi1jb2xvcjogJGNvbG9yX2NyaW1zb24gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N0b2NrLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8gRGFpbHkgRGVhbFxuJHByb2R1Y3QtdGlsZV9kYWlseWRlYWwtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLyBXaXNobGlzdFxuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGU6IGZhbHNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXRleHRhcmVhLWhlaWdodDogNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4wIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuXG4vLyBEZXNjcmlwdGlvblxuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I6ICRjb2xvcl9kb3ZlLWdyYXkgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4hZGVmYXVsdDtcblxuLy8gVGh1bWJuYWlsXG4kcHJvZHVjdC10aWxlX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBQcmljZXNcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlX3ByaWNlcy1kaXJlY3Rpb246ICdob3Jpem9udGFsJyAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZV9wcmljZXMtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudDogJ2xlZnQnICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZTogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICBtZWRpYSxcbiAgICAgICAgaW1hZ2VzLFxuICAgICAgICBpbWFnZSxcbiAgICAgICAgY2F0ZWdvcnlfcGFnZV9ncmlkKTtcbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLXdpZHRoOiB0by1udW1iZXIoI3ttYXAtZ2V0KCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLCB3aWR0aCl9KTtcbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLWhlaWdodDogdG8tbnVtYmVyKCN7bWFwLWdldCgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZSwgaGVpZ2h0KX0pO1xuXG4uI3skbnN9cHJvZHVjdC10aWxlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJhY2tncm91bmQ7XG4gICAgLy8gYm9yZGVyOiAkcHJvZHVjdC10aWxlX2luaXRpYWwtYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG4gICAgLy9hc3BlY3QtcmF0aW86ICN7JHRpbGVfYXNwZWN0LXJhdGlvLXdpZHRoLS1tb2JpbGV9LyN7JHRpbGVfYXNwZWN0LXJhdGlvLWhlaWdodC0tbW9iaWxlfTtcblxuICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAvLyAgICAgYXNwZWN0LXJhdGlvOiAjeyR0aWxlX2FzcGVjdC1yYXRpby13aWR0aH0vI3skdGlsZV9hc3BlY3QtcmF0aW8taGVpZ2h0fTtcbiAgICAvLyB9XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLy8gYm9yZGVyOiAkcHJvZHVjdC10aWxlX2hvdmVyLWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNsaWNrYWJsZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taGlkZGVuIHtcbiAgICAgICAgI3skcm9vdH1fX21haW4ge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZV9wYWRkaW5nO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9jb250ZW50LWhlaWdodCAhPSdhdXRvJyBhbmQgJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyICkge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkcHJvZHVjdC10aWxlX2NvbnRlbnQtaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmlndXJlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aCAvIDEwKSAqIDFyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UtaGVpZ2h0IC8gMTApICogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJltzcmMqPSdwbGFjZWhvbGRlciddIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyKSB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMiAqICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSAkcHJvZHVjdC10aWxlX2FkZHRvY2FydC13aWR0aDtcblxuICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgICAgICAgJ2JhZGdlcyBhZGR0bydcbiAgICAgICAgICAgICdzd2F0Y2hlcyBzd2F0Y2hlcydcbiAgICAgICAgICAgICduYW1lIG5hbWUnXG4gICAgICAgICAgICAnZGVzY3JpcHRpb24gZGVzY3JpcHRpb24nXG4gICAgICAgICAgICAnY29sbGVjdGlvbi1za3UgY29sbGVjdGlvbi1za3UnXG4gICAgICAgICAgICAncHJpY2UgcHJpY2UnXG4gICAgICAgICAgICAncmV2aWV3ICBhZGR0b2NhcnQnXG4gICAgICAgICAgICAnc3RvY2sgYWRkdG9jYXJ0J1xuICAgICAgICAgICAgJ3dpc2hsaXN0LWljb25zIHdpc2hsaXN0LWljb25zJztcbiAgICB9XG5cbiAgICAmX19zd2F0Y2hlcyB7XG4gICAgICAgIGdyaWQtYXJlYTogc3dhdGNoZXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1tYXJnaW47XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ7XG5cbiAgICAgICAgJixcbiAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgLy8gJjphZnRlcntcbiAgICAgICAgICAgIC8vICAgICBjb250ZW50OiBcIitcIjtcbiAgICAgICAgICAgIC8vICAgICBjb2xvcjogJGNvbG9yX2NvcmluX2xpZ2h0O1xuICAgICAgICAgICAgLy8gICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIC8vICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICAvLyAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgICAgIC8vICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAvLyAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAvLyAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCByZ2IoMjU1LDI1NSwyNTUpIDQwJSk7O1xuICAgICAgICAgICAgLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIC8vICAgICByaWdodDogMDtcbiAgICAgICAgICAgIC8vICAgICB0b3A6IDA7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmFuZCB7XG4gICAgICAgIGdyaWQtYXJlYTogYnJhbmQ7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtdGlsZV9icmFuZC1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogJHByb2R1Y3QtdGlsZV9icmFuZC1hbGlnbm1lbnQ7XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJhbmQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9icmFuZC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX2JyYW5kLWNvbG9yO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBncmlkLWFyZWE6IG5hbWU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWZvbnQtc2l6ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXkgKiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5lLWhlaWdodCArIDAuMjtcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXJnaW47XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWFsaWdubWVudDtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ID09MSkge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLXZpc2l0ZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUtbGluayB7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvciAhPSRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXIgKSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBkaXNhYmxlZCBiZWNhdXNlIGF1dG9wcmVmaXhlciBjYW4ndCBidWlsZCB0aGlzICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ID4gMSkge1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxpbmUtY2xhbXA6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci12aXNpdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2xlY3Rpb24tc2t1LXdyYXBwZXIge1xuXG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2NvbGxlY3Rpb24sXG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3NrdSB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3R1bmRvcmE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ICogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQgKyAwLjI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ7XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXkgPT0xKSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbGVjdGlvbi1za3Utd3JhcHBlciB7XG4gICAgICAgIGdyaWQtYXJlYTogY29sbGVjdGlvbi1za3U7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBwcmljZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfcHJpY2VzLW1hcmdpbjtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtZGlyZWN0aW9uID09J3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgICAgICAucHJpY2UtZnJvbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3ByaWNlcy1hbGlnbm1lbnQgPT0nbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudCA9PSdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA+LnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3ByaWNlcy1hbGlnbm1lbnQgPT0nbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvZHVjdC10aWxlX3ByaWNlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgJjpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJpY2UtYm94LS12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcmV2aWV3IHtcbiAgICAgICAgZ3JpZC1hcmVhOiByZXZpZXc7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9yZXZpZXctbWFyZ2luO1xuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdG9jayB7XG4gICAgICAgIGdyaWQtYXJlYTogc3RvY2s7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX3N0b2NrLWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX3N0b2NrLW1hcmdpbjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtYWxpZ25tZW50O1xuXG4gICAgICAgICYtLWluIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3N0b2NrLWluLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3N0b2NrLW91dC1vZi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvY2FydCB7XG4gICAgICAgIGdyaWQtYXJlYTogYWRkdG9jYXJ0O1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LW1hcmdpbjtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXNob3ctb25seS1vbi1ob3Zlcikge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fTpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXJlZHVjZWQpIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGU6bm90KC4jeyRuc31wcm9kdWN0LXRpbGUtLWxpc3QpICYge1xuICAgICAgICAgICAgICAgIC4jeyRuc31hZGR0b2NhcnQge1xuICAgICAgICAgICAgICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogNHJlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAmX19mYWlsLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fYnV0dG9uLWljb24sXG4gICAgICAgICAgICAgICAgICAgICZfX2NvbmZpZ3VyZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZTpub3QoLiN7JG5zfXByb2R1Y3QtdGlsZS0tbGlzdCkgJi4jeyRuc31hZGR0b2NhcnQtLWxvYWRpbmcge1xuICAgICAgICAgICAgICAgIC4jeyRuc31hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC4jeyRuc31hZGR0b2NhcnRfX2J1dHRvbi1pY29uLFxuICAgICAgICAgICAgICAgIC4jeyRuc31hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkKSB7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgbm90KCRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXJlZHVjZWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG8ge1xuICAgICAgICBncmlkLWFyZWE6IGFkZHRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX2FkZHRvLW1hcmdpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEuNXJlbTtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2xpbmsge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVkY3QtdGlsZV9hZGR0by1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QgJixcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rLWxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGdyaWQtYXJlYTogYmFkZ2VzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogJHByb2R1Y3QtdGlsZV9iYWRnZXMtei1pbmRleDtcbiAgICAgICAgI3skcHJvZHVjdC10aWxlX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tcHJvcH06ICRwcm9kdWN0LXRpbGVfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi12YWx1ZTtcbiAgICAgICAgI3skcHJvZHVjdC10aWxlX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcH06ICRwcm9kdWN0LXRpbGVfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi12YWx1ZTtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfYmFkZ2VzLWRpcmVjdGlvbiA9PSd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlKCk7XG5cbiAgICAgICAgZ3JpZC1hcmVhOiBiYWRnZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScsICc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzY291bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZGlzY291bnQnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ2Rpc2NvdW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnbmV3Jyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCduZXcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZnJlZS1zaGlwcGluZycpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZnJlZS1zaGlwcGluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcG9wdWxhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdwb3B1bGFyJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdwb3B1bGFyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYWlseWRlYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZGFpbHlkZWFsJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkYWlseWRlYWwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX2JhZGdlcy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvLyBTZXQgd2lkdGggZXhwbGljaXRseSB0byBhdm9pZCBFZGdlIGJ1Z3NcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLXRleHQge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCk7XG4gICAgfVxuXG4gICAgJl9fZGFpbHlkZWFsIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkYWlseWRlYWw7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9kYWlseWRlYWwtbWFyZ2luO1xuICAgIH1cblxuICAgICZfX3F0eSB7XG4gICAgICAgIGdyaWQtYXJlYTogcXR5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tO1xuICAgICAgICB3aWR0aDogJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGdyaWQtYXJlYTogZGVzY3JpcHRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1saW5lLWhlaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1tYXJnaW47XG4gICAgfVxuXG4gICAgJl9fbWFpbi1hZnRlciB7XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyKSB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9OmhvdmVyICYge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tYmFja2dyb3VuZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfcGFkZGluZztcblxuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1yZW1vdmUtaWNvbi1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplO1xuICAgICAgICBmaWxsOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgICAgIEBpZiBub3QoJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgICAgIGdyaWQtYXJlYTogd2lzaGxpc3QtaWNvbnM7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLW1hcmdpbjtcbiAgICAgICAgZGlzcGxheTogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheSA9PWZsZXgpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0X2xpc3QtaXRlbS1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHByb2R1Y3RfbGlzdC1jYXJvdXNlbC1icmVha3BvaW50OiAnPj10YWJsZXQnICFkZWZhdWx0O1xuXG4uI3skbnN9cHJvZHVjdHMtbGlzdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICY6bm90KCN7JHJvb3R9LS1jYXJvdXNlbCkge1xuICAgICAgICAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0X2xpc3QtaXRlbS1wYWRkaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jYXJvdXNlbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0X2xpc3QtY2Fyb3VzZWwtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRwcm9kdWN0X2xpc3QtaXRlbS1ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0X2xpc3QtaXRlbS1wYWRkaW5nO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbiRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlOiB0cnVlICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9pbnB1dC1mb250LXNpemU6IGluaGVyaXQgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC10ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWhvdmVyLWJvcmRlcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2J1dHRvbi1wb3NpdGlvbi1vZmZzZXQ6IDFweCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aDogM3JlbSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYmFja2dyb3VuZDogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlciAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtb3BhY2l0eTogMSAhZGVmYXVsdDtcblxuJHF0eS1pbmNyZW1lbnRfaWNvbi1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1kaXNhYmxlZC1maWxsOiAkY29sb3JfYmFja2dyb3VuZC02MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtd2lkdGg6IDEuMnJlbSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC1oZWlnaHQ6IDAuM3JlbSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LXdpZHRoICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LWhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoICFkZWZhdWx0O1xuXG4uI3skbnN9cXR5LWluY3JlbWVudCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBAaWYgJHF0eS1pbmNyZW1lbnQtLWluLXdpc2hsaXN0X2hpZGUge1xuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuICAgICAgICBmb250LXNpemU6ICRxdHktaW5jcmVtZW50X2lucHV0LWZvbnQtc2l6ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtdGV4dC1hbGlnbjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIG1pbi13aWR0aDogMmNoO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvcmRlcjogMjtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgICAgJjpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1ob3Zlci1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIH4gI3skcm9vdH1fX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICArIC5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBmaWxsICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZTtcbiAgICAgICAgbWF4LXdpZHRoOiAkcXR5LWluY3JlbWVudF9idXR0b24td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBmbGV4OiAxIDEgKCN7JHF0eS1pbmNyZW1lbnRfYnV0dG9uLXdpZHRoIC0gMX0pO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXI7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRxdHktaW5jcmVtZW50X2ljb24tZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRxdHktaW5jcmVtZW50X2ljb24tLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNyZW1lbnQge1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5jcmVtZW50IHtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAkcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLW9wYWNpdHk7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkcXR5LWluY3JlbWVudF9pY29uLS1kaXNhYmxlZC1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgICYtLWRlY3JlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5jcmVtZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcblxuLiN7JG5zfXNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kc2tpcC1saW5rc19jb250YWluZXItcGFkZGluZzogMC41cmVtIDAgIWRlZmF1bHQ7XG5cbiRza2lwLWxpbmtzX2Rpc3BsYXktbW9kZTogc3RhdGljICFkZWZhdWx0OyAvLyBzdGF0aWMgfCBmaXhlZFxuJHNraXAtbGlua3NfYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHNraXAtbGlua3Nfei1pbmRleDogNDAwICFkZWZhdWx0O1xuXG4kc2tpcC1saW5rc19saW5rLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRza2lwLWxpbmtzX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRza2lwLWxpbmtzX2xpbmstY29sb3ItaG92ZXI6ICRza2lwLWxpbmtzX2xpbmstY29sb3IgIWRlZmF1bHQ7XG4kc2tpcC1saW5rc19saW5rLWNvbG9yLWZvY3VzOiAkc2tpcC1saW5rc19saW5rLWNvbG9yICFkZWZhdWx0O1xuJHNraXAtbGlua3NfbGluay1wYWRkaW5nOiAwLjVyZW0gMXJlbSAhZGVmYXVsdDtcbiRza2lwLWxpbmtzX2xpbmstbWFyZ2luOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc2tpcC1saW5rc19saW5rLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJHNraXAtbGlua3NfbGluay1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHNraXAtbGlua3NfbGluay10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcblxuLiN7JG5zfXNraXAtbGlua3Mge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fbGlua3Mge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2tpcC1saW5rc19iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAmOm5vdCg6Zm9jdXMpOm5vdCg6Zm9jdXMtd2l0aGluKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFkanVzdG1lbnQgb2YgY2xpcCBwcm9wZXJ0aWVzIHNvIHRoZSBlbGVtZW50IGlzIHN0aWxsIGZvY3VzYWJsZVxuICAgICAgICAgICAgY2xpcDogYXV0bztcbiAgICAgICAgICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LXZpc2libGUoKTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRza2lwLWxpbmtzX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpZiAoJHNraXAtbGlua3NfZGlzcGxheS1tb2RlID09IGZpeGVkKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRza2lwLWxpbmtzX3otaW5kZXg7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkc2tpcC1saW5rc19kaXNwbGF5LW1vZGUgPT0gc3RhdGljKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluY3JlYXNlZCBzcGVjaWZpY2l0eSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsaW5rIHN0eWxlc1xuICAgIGEjeyRyb290fV9fbGluayB7XG4gICAgICAgIGNvbG9yOiAkc2tpcC1saW5rc19saW5rLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAkc2tpcC1saW5rc19saW5rLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNraXAtbGlua3NfbGluay1mb250LXNpemU7XG4gICAgICAgIGJvcmRlcjogJHNraXAtbGlua3NfbGluay1ib3JkZXI7XG4gICAgICAgIG1hcmdpbjogJHNraXAtbGlua3NfbGluay1tYXJnaW47XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc2tpcC1saW5rc19saW5rLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRza2lwLWxpbmtzX2xpbmstdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgICAgICY6bnRoLW9mLXR5cGUobiArIDIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKG4gKyAyKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUobiArIDMpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgJjpudGgtb2YtdHlwZShuICsgMiksXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKG4gKyAzKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgY29sb3I6ICRza2lwLWxpbmtzX2xpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRza2lwLWxpbmtzX2xpbmstdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiRzbGlkZXItLWhvcml6b250YWxfaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9iYWNrZ3JvdW5kOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4udWktc2xpZGVyLWhvcml6b250YWwge1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItLWhvcml6b250YWxfYmFja2dyb3VuZDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItLWhvcml6b250YWxfaGVpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAoJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAvIDIpO1xuICAgIG1hcmdpbi1yaWdodDogKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgLyAyKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ7XG5cbiAgICAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIHdpZHRoOiAkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgLyAyKTtcblxuICAgICAgICAmLnVpLXN0YXRlLWhvdmVyLFxuICAgICAgICAmLnVpLXN0YXRlLWFjdGl2ZSxcbiAgICAgICAgJi51aS1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWp1c3RpZnktY29udGVudDogY2VudGVyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlciAwICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLW1hcmdpbjogMCAwLjRlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZzogMCAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDogMy41ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg6IDRlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uOiBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTU1JSwgLTU1JSwgMCkgIWRlZmF1bHQ7XG5cbkBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSAhZGVmYXVsdDtcbn1cblxuLiN7JG5zfXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgIGRpc3BsYXk6ICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5O1xuICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nO1xuXG4gICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5ID09XG4gICAgICAgIGZsZXggb3JcbiAgICAgICAgJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXkgPT1cbiAgICAgICAgaW5saW5lLWZsZXhcbiAgICB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtanVzdGlmeS1jb250ZW50O1xuICAgICAgICBhbGlnbi1pdGVtczogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDtcbiAgICAgICAgbWluLXdpZHRoOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2l0aW9uO1xuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kICE9XG4gICAgICAgICAgICAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1iYWNrZ3JvdW5kXG4gICAgICAgIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uO1xuICAgICAgICB0cmFuc2Zvcm06ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTtcblxuICAgICAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb24gPT0gYWJzb2x1dGUge1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1NSU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tZmIgJiB7XG4gICAgICAgICAgICB3aWR0aDogMC45ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLXR3ICYge1xuICAgICAgICAgICAgd2lkdGg6IDIuNWVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0teXQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMS44ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDIuMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWdwICYge1xuICAgICAgICAgICAgd2lkdGg6IDJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbi8vIERldGVybWluZXMgaWYgdGhlIENTUyBtYXNrLWJhc2VkIHN0YXIgaWNvbnMgYXJlIGVuYWJsZWQuXG4kc3Rhci1yYXRpbmdfdXNlLWNzcy1tYXNrLWZvci1zdGFyczogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19SZXZpZXcsXG4gICAgc3Rhci1yYXRpbmcsXG4gICAgdXNlLWNzcy1tYXNrLWZvci1zdGFyc1xuKSAhZGVmYXVsdDtcblxuJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTogJGNvbG9yX3Jldmlldy1hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU6ICRjb2xvcl9yZXZpZXctaW5hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTogJGNvbG9yX3Jldmlldy1hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlOiAkY29sb3JfcmV2aWV3LWNvbnRyb2wtaW5hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBmbGV4IGp1c3RpZmljYXRpb24gb2Ygc3RhcnNcbiRzdGFyLXJhdGluZ19qdXN0aWZ5OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyB3aWR0aCBvZiBhIHNpbmdsZSBzdGFyXG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXdzLXN1bW1hcnk6IDJyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXc6IDEuNXJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtOiAycmVtICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyB3aWR0aCBvZiByZXZpZXcgc3RhcnMgY29udGFpbmVyXG4kc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLWRlZmF1bHQ6IDcuMnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5OiAxMHJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3OiA3LjJyZW0gIWRlZmF1bHQ7XG4vLyBQYWRkaW5nIGZvciByZXZpZXcgZm9ybSBzdGFyc1xuJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTogMC42cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybS1tb2JpbGU6IDFyZW0gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHBhZGRpbmcgcnVsZXNldFxuJHN0YXItcmF0aW5nX3BhZGRpbmctZGVmYXVsdDogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlld3Mtc3VtbWFyeTogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldzogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldy1mb3JtOiAwICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBzY29yZSBhbmQgY291bnQgdGV4dGZpZWxkIGRpc3BsYXkgcnVsZXNldFxuJHN0YXItcmF0aW5nX2hpZGUtdGV4dC1wZHA6IGZhbHNlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2hpZGUtdGV4dC10aWxlOiBmYWxzZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgZGlzcGxheSBydWxlc2V0IGZvciBcInJldmlld1wiIGFubm90YXRpb25cbiRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tcGRwOiBmYWxzZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tdGlsZTogdHJ1ZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgcmF0aW5nIGxhYmVsIGRldGFpbHNcbiRzdGFyLXJhdGluZ19sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTogMC43NWVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgdGhlIHNoYXBlIG9mIHRoZSBzdGFyXG4kc3Rhci1yYXRpbmdfaWNvbi11cmw6ICcuLi9pbWFnZXMvaWNvbnMvcmV2aWV3cy9zdGFyLnN2ZycgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIGFzcGVjdCByYXRpbyBvZiB0aGUgc3RhcnNcbiRzdGFyLXJhdGluZ19hc3BlY3QtcmF0aW86IDEgIWRlZmF1bHQ7XG5cbi4jeyRuc31zdGFyLXJhdGluZyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJl9fc3RhcnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctZGVmYXVsdDtcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtZGVmYXVsdDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkc3Rhci1yYXRpbmdfanVzdGlmeTtcblxuICAgICAgICAjeyRyb290fS0tc3VtbWFyeSAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlld3Mtc3VtbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1yZXZpZXcgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXc7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGFyIHtcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ7XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ191c2UtY3NzLW1hc2stZm9yLXN0YXJzIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyhcbiAgICAgICAgICAgICAgICAjeyRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHR9IC9cbiAgICAgICAgICAgICAgICAgICAgI3skc3Rhci1yYXRpbmdfYXNwZWN0LXJhdGlvfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogJHN0YXItcmF0aW5nX2FzcGVjdC1yYXRpbztcblxuICAgICAgICAgICAgQHN1cHBvcnRzIChtYXNrOiB1cmwoI3skc3Rhci1yYXRpbmdfaWNvbi11cmx9KSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXNrOiB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IG1hc2tcbiAgICAgICAgICAgIEBzdXBwb3J0cyBub3QgKG1hc2s6IHVybCgjeyRzdGFyLXJhdGluZ19pY29uLXVybH0pKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgNDVkZWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgdXJsKCRzdGFyLXJhdGluZ19pY29uLXVybCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtYmxlbmQtbW9kZTogbGlnaHRlbiwgbm9ybWFsO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWluYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfdXNlLWNzcy1tYXNrLWZvci1zdGFycyB7XG4gICAgICAgICAgICAgICAgQHN1cHBvcnRzIChtYXNrOiB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKSkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBGYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBtYXNrXG4gICAgICAgICAgICAgICAgQHN1cHBvcnRzIG5vdCAobWFzazogdXJsKCRzdGFyLXJhdGluZ19pY29uLXVybCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1ZGVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybCgkc3Rhci1yYXRpbmdfaWNvbi11cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYWxmLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaWYgJHN0YXItcmF0aW5nX3VzZS1jc3MtbWFzay1mb3Itc3RhcnMge1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyAobWFzazogdXJsKCRzdGFyLXJhdGluZ19pY29uLXVybCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgdG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZSA1MCVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgbWFza1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyBub3QgKG1hc2s6IHVybCgjeyRzdGFyLXJhdGluZ19pY29uLXVybH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byByaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmUgNTAlXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsKCRzdGFyLXJhdGluZ19pY29uLXVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgLnN0YXItbGVmdCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnN0YXItcmlnaHQge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXN1bW1hcnkgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXJldmlldyAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXc7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgbm90ICRzdGFyLXJhdGluZ191c2UtY3NzLW1hc2stZm9yLXN0YXJzIHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBmaWxsOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19mb3JtLXN0YXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgIH1cblxuICAgICZfX2Zvcm0tc3RhciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ191c2UtY3NzLW1hc2stZm9yLXN0YXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAkc3Rhci1yYXRpbmdfYXNwZWN0LXJhdGlvO1xuXG4gICAgICAgICAgICBAc3VwcG9ydHMgKG1hc2s6IHVybCgjeyRzdGFyLXJhdGluZ19pY29uLXVybH0pKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXNrOiB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IG1hc2tcbiAgICAgICAgICAgIEBzdXBwb3J0cyBub3QgKG1hc2s6IHVybCgjeyRzdGFyLXJhdGluZ19pY29uLXVybH0pKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgNDVkZWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBsaWdodGVuLCBub3JtYWw7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaWYgJHN0YXItcmF0aW5nX3VzZS1jc3MtbWFzay1mb3Itc3RhcnMge1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyAobWFzazogdXJsKCN7JHN0YXItcmF0aW5nX2ljb24tdXJsfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IG1hc2tcbiAgICAgICAgICAgICAgICBAc3VwcG9ydHMgbm90IChtYXNrOiB1cmwoI3skc3Rhci1yYXRpbmdfaWNvbi11cmx9KSkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNDVkZWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiBub3QgJHN0YXItcmF0aW5nX3VzZS1jc3MtbWFzay1mb3Itc3RhcnMge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LW9mLXR5cGUoKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnM6aG92ZXIgJiB7XG4gICAgICAgICAgICBAaWYgJHN0YXItcmF0aW5nX3VzZS1jc3MtbWFzay1mb3Itc3RhcnMge1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyAobWFzazogdXJsKCN7JHN0YXItcmF0aW5nX2ljb24tdXJsfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IG1hc2tcbiAgICAgICAgICAgICAgICBAc3VwcG9ydHMgbm90IChtYXNrOiB1cmwoI3skc3Rhci1yYXRpbmdfaWNvbi11cmx9KSkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNDVkZWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgJiB7XG4gICAgICAgICAgICBAaWYgJHN0YXItcmF0aW5nX3VzZS1jc3MtbWFzay1mb3Itc3RhcnMge1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyAobWFzazogdXJsKCN7JHN0YXItcmF0aW5nX2ljb24tdXJsfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgbWFza1xuICAgICAgICAgICAgICAgIEBzdXBwb3J0cyBub3QgKG1hc2s6IHVybCgjeyRzdGFyLXJhdGluZ19pY29uLXVybH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NWRlZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwoJHN0YXItcmF0aW5nX2ljb24tdXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRzdGFyLXJhdGluZ190ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMSk7XG5cbiAgICAgICAgJi0tY291bnQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLXRleHQtcGRwIHtcbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGUge1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXBkcCB7XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkc3Rhci1yYXRpbmdfbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFyLXJhdGluZ19sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMik7XG4gICAgfVxufVxuXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgIC5yYXRpbmctI3skaX0ge1xuICAgICAgICAgICAgei1pbmRleDogI3skaX07XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm0tbW9iaWxlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS12aXNpYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2Nzcyc7XG5cbiRzd2F0Y2hlcy0tY2xpY2thYmxlOiBkZWVwLWdldCgkdmlldy14bWwsXG4gICAgICAgIHZhcnMsXG4gICAgICAgIE1hZ2VudG9fQ2F0YWxvZyxcbiAgICAgICAgY29uZmlndXJhYmxlX3RpbGVfc3dhdGNoZXMsXG4gICAgICAgIGVuYWJsZWQpICFkZWZhdWx0O1xuXG4vLyBLZWVwIGluIHN5bmMgd2l0aCBxdWFudGl0eSB3cmFwcGVyIGluIGJ1eWJveC5cbiRzd2F0Y2hlc19sYWJlbC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwOiAxMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19sYWJlbC1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19sYWJlbC1mb250LXNpemU6IDEuMWVtICFkZWZhdWx0O1xuLy8gS2VlcCBpbiBzeW5jIHdpZHRoIHF1YW50aXR5IHdyYXBwZXIgaW4gYnV5Ym94IGVuZC5cblxuLy8gU2NlbmFyaW8gd2l0aCBzd2F0Y2hlcyBiZWxvdyBsYWJlbCwgd2hpY2ggaXMgMTAwJSB3aWRlXG4vLyB3aXRoIHRoaXMgdmFyaWFibGUgc2V0IHRvIHRydWUgJHN3YXRjaGVzX2xhYmVsLXdpZHRoXG4vLyBhbmQgJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cCB3aWxsIGJlIG92ZXJyaWRlbiAtIGFsd2F5cyAxMDAlIHdpZHRoXG4kc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbDogZmFsc2UgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19kaXNhYmxlLXNob3ctbW9yZTogZmFsc2UgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWd1dHRlcjogMC40ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWhlaWdodDogMy4yZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXdpZHRoOiAzLjJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZzogMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXQ6IDAuMWVtICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItcmFkaXVzOiA1MHB4ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGg6IDNweCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2FsdG8gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfY29yaW5fbGlnaHQgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1ib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfY29yaW5fbGlnaHQgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1ib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtb3BhY2l0eTogMC42NSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC0tYmFja2luc3RvY2stYmFja2dyb3VuZDogcmdiYSgkY29sb3JfYmFja2dyb3VuZC02MDAsIDAuNTUpIHVybCguLi9pbWFnZXMvaWNvbnMvbm90aWZpY2F0aW9uLXBhbmVsL2ljb25fbm90aWZpY2F0aW9uLW91dGxpbmUuc3ZnKSBjZW50ZXIvNjQlIG5vLXJlcGVhdCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0OiAoXG4gICAgJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKyAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGgpICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lOiB1bnNldCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLW91dGxpbmU6IHVuc2V0ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtb3V0bGluZTogdW5zZXQgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19yb3dzLWd1dHRlcjogJHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgKiAyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXMtLXRpbGVfZm9udC1zaXplOiAwLjQ1ZW0gIWRlZmF1bHQ7XG4vLyBUZWxscyBob3cgbWFueSByb3dzIG9mIHN3YXRjaGVzIHdpbGwgYmUgZGlzcGxheWVkIGluc2lkZSB0aWxlIGNvbXBvbmVudC5cbiRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93czogMSAhZGVmYXVsdDtcbi8vIENhbGN1bGF0ZXMgaG93IG11Y2ggc3BhY2Ugc2hvdWxkIGJlIHJlc2VydmVkIGluIHRpbGUgZm9yIHN3YXRjaGVzIHRvIHByZXZlbnQgY29udGVudCBmcm9tIGp1bXBpbmcuXG4kc3dhdGNoZXMtLXRpbGVfbWluLWhlaWdodDogY2FsYygjeyRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93c30gKiAoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQgKlxuIDJcbiAgICB9KSkgIWRlZmF1bHQ7XG4kc3dhdGNoZXMtLXBkcF9mb250LXNpemU6IDEuMWVtICFkZWZhdWx0O1xuJHN3YXRjaGVzLS1maWx0ZXJzX2ZvbnQtc2l6ZTogMC44ZW0gIWRlZmF1bHQ7XG5cbi8vIFRvb2x0aXBzIGZvciBzd2F0Y2hlc1xuJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXJhZGl1czogMC41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemU6IDAuMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtbWluLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2hvdzogdHJ1ZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteDogNTAlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YTogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICBtZWRpYSxcbiAgICAgICAgaW1hZ2VzLFxuICAgICAgICBpbWFnZSxcbiAgICAgICAgc3dhdGNoX3RodW1iKSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoOiAje21hcC1nZXQoXG4gJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWRhdGEsXG4gICAgd2lkdGgpXG59XG5cbiFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWhlaWdodDogI3ttYXAtZ2V0KFxuICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhLFxuICAgIGhlaWdodClcbn1cblxuIWRlZmF1bHQ7XG5cbi5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gVGhlIG9ubHkgc2VsZWN0b3Igd2UgaGF2ZSB0byB0ZWxsIHRoYXQgc3dhdGNoZXMgYXJlIGluc2lkZSBhZnRlcnNlYXJjaCBuYXZpZ2F0aW9uLlxuICAgICYuc3dhdGNoLWxheWVyZWQge1xuICAgICAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tZmlsdGVyc19mb250LXNpemU7XG4gICAgfVxuXG4gICAgJismIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHN3YXRjaGVzX3Jvd3MtZ3V0dGVyO1xuICAgIH1cbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICAgIG9yZGVyOiAxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAjeyRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICogMn0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4pO1xuZm9udC13ZWlnaHQ6IDcwMDtcbmZvbnQtc2l6ZTogJHN3YXRjaGVzX2xhYmVsLWZvbnQtc2l6ZTtcbndpZHRoOiAkc3dhdGNoZXNfbGFiZWwtd2lkdGg7XG5tYXJnaW4tcmlnaHQ6ICRzd2F0Y2hlc19sYWJlbC1ndXR0ZXI7XG5cbkBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT10cnVlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICB3aWR0aDogJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cDtcblxuICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT10cnVlKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuJjphZnRlciB7XG4gICAgY29udGVudDogJzogJztcbiAgICBsaW5lLWhlaWdodDogY2FsYygjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH0pO1xufVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICBvcmRlcjogMztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tbGVmdDogLSN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfTtcbiAgICBtYXJnaW4tYm90dG9tOiAtI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn07XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLnN3YXRjaC1vcHQgJiB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAvLyBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICAgIC8vICAgICAxMDAlIC0gI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSAtICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRofVxuICAgICAgICAvLyApO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT10cnVlKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAvLyBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICAgICAgICAvLyAgICAgMTAwJSAtICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn0gLSAjeyRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXB9XG4gICAgICAgICAgICAvLyApO1xuXG4gICAgICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1hZ2UtZXJyb3Ige1xuICAgIG9yZGVyOiAyO1xufVxuXG4vLyBFbGVtZW50IGFkZGVkIGFzIGEgcGFyZW50IG9mIC5zd2F0Y2gtb3B0aW9uIGluIGZpbHRlcnMuXG4uc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4td2lkdGg6ICRzd2F0Y2hlc19zd2F0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dhdGNoZXNfc3dhdGNoLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmc7XG4gICAgLy8gbWFyZ2luOiAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gY2FsYyhcbiAgICAvLyAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSArICN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfVxuICAgIC8vICAgICApIGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9ICsgI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn0pO1xuICAgIG1hcmdpbjogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjtcbiAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAjeyRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICogMn0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBib3JkZXItY29sb3IgMC4zcywgb3BhY2l0eSAwLjNzLFxuICAgICAgICBjb2xvciAwLjNzO1xuXG4gICAgQGlmICRzd2F0Y2hlc19kaXNhYmxlLXNob3ctbW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICBsZWZ0OiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgcmlnaHQ6IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICBib3R0b206IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcztcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIC8vIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3dhdGNoZXMvZGlzYWJsZWQuc3ZnKSAkY29sb3Jfd2hpdGUgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQgdG9wLCAjZmZmZmZmIDAlLCAjZmZmZmZmIDQyJSwgI2ZmZmZmZiA0MyUsICNmZmZmZmYgNDYlLCAjQkNCQkJDIDQ3JSwgI0JDQkJCQyA1MyUsICNmZmZmZmYgNTQlLCAjZmZmZmZmIDU3JSwgI2ZmZmZmZiA1OCUsICNmZmZmZmYgMTAwJSk7XG4gICAgICAgIHdpZHRoOiAzLjlyZW07XG4gICAgICAgIGhlaWdodDogMy45cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMuOHJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjYmNiYmJjO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLFxuICAgICYuYmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1ib3JkZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJhY2tncm91bmQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1vdXRsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLFxuICAgICZbZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICYudGV4dCB7XG4gICAgICAgICAgICBvcGFjaXR5OiA1MCU7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3NpbHZlci1jaGFsaWNlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgLy8gLy9ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIC8vIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6IDNweDtcbiAgICAgICAgICAgICAgICAvLyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKTtcbiAgICAgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kOiAjQkNCQkJDO1xuICAgICAgICAgICAgICAgIC8vIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIC8vIHRvcDogMHB4O1xuICAgICAgICAgICAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIC8vIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3dhdGNoZXMvZGlzYWJsZWQuc3ZnKSAkY29sb3Jfd2hpdGUgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCB0b3AsICNmZmZmZmYwMCAwJSwgI2ZmZmZmZjAwIDQyJSwgI2ZmZmZmZjAwIDQzJSwgI2ZmZmZmZjAwIDQ2JSwgI0JDQkJCQyA0NyUsICNCQ0JCQkMgNTMlLCAjZmZmZmZmMDAgNTQlLCAjZmZmZmZmMDAgNTclLCAjZmZmZmZmMDAgNTglLCAjZmZmZmZmMDAgMTAwJSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMuOXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMuOXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMuOHJlbTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICAgICAgICAgICAgLy8gb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjYmNiYmJjO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaW1hZ2UsXG4gICAgICAgICYuY29sb3Ige1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pLFxuICAgICYuYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1vdXRsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubW9kYWwtY29udGVudCAuc3dhdGNoLW9wdGlvbjphZnRlcixcbi5tb2RhbC1jb250ZW50IC5zd2F0Y2gtb3B0aW9uOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvLyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3N3YXRjaGVzL2Rpc2FibGVkLnN2ZykgJGNvbG9yX3doaXRlIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQgdG9wLCAjZmZmZmZmIDAlLCAjZmZmZmZmIDQyJSwgI2ZmZmZmZiA0MyUsICNmZmZmZmYgNDYlLCAjQkNCQkJDIDQ3JSwgI0JDQkJCQyA1MyUsICNmZmZmZmYgNTQlLCAjZmZmZmZmIDU3JSwgI2ZmZmZmZiA1OCUsICNmZmZmZmYgMTAwJSk7XG4gICAgd2lkdGg6IDQuNnJlbTtcbiAgICBoZWlnaHQ6IDQuNnJlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQuNnJlbTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgb3BhY2l0eTogMDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYmNiYmJjO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLm1vZGFsLWNvbnRlbnQgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiA0LjZyZW0gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDQuNnJlbSAhaW1wb3J0YW50O1xufVxuXG4uYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLnN3YXRjaC1vcHRpb24uaW1hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDRyZW07XG4gICAgfVxufVxuXG4ucHJvZHVjdHMtZ3JpZCB7XG4gICAgLnN3YXRjaC1vcHRpb24uaW1hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5zd2F0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuXG4gICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdHlsZXMgZnJvbSBNYWdlbnRvLlxuICAgIC8vIEl0IHByZXZlbnRzIGtleWJvYXJkIG9uIG1vYmlsZSB0byBiZSBzaG93biBhZnRlciBzd2F0Y2ggaXMgY2xpY2tlZFxuICAgIGxlZnQ6IC0xMDAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3YXRjaC1tb3JlIHtcbiAgICBAaWYgJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLFxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW46ICRzd2F0Y2hlc190b29sdGlwLW1hcmdpbjtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItcmFkaXVzO1xuICAgIGNvbG9yOiAkc3dhdGNoZXNfdG9vbHRpcC1jb2xvcjtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlc190b29sdGlwLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC13ZWlnaHQ7XG4gICAgcGFkZGluZzogJHN3YXRjaGVzX3Rvb2x0aXAtcGFkZGluZztcbiAgICB0ZXh0LWFsaWduOiAkc3dhdGNoZXNfdG9vbHRpcC10ZXh0LWFsaWduO1xuICAgIG1pbi13aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtbWluLXdpZHRoO1xuXG4gICAgQGlmICgkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPTAgYW5kICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9J25vbmUnXG5cbiAgICApIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSBzb2xpZCAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoICsgJ3B4JztcbiAgICAgICAgaGVpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtaGVpZ2h0ICsgJ3B4JztcbiAgICB9XG5cbiAgICAuY29ybmVyIHtcbiAgICAgICAgQGlmICgkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaG93KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGxlZnQ6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14O1xuXG4gICAgICAgICAgICAgICAgQGlmICh1bml0KCRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14KT09JyUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteH0pIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPTAgYW5kICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9J25vbmUnXG5cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgc29saWQgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplIHNvbGlkICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYygtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplIC9cbiAyXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICArICN7JHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemV9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemUgLyAyfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbn1cblxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIHtcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBwYWRkaW5nLXRvcDogMC44cmVtO1xuICAgIH1cblxuICAgIC5zd2F0Y2gtYXR0cmlidXRlKy5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG59XG5cbi5taXNzaW5nLXN3YXRjaGVzLW1vZGFsLXZpc2libGUge1xuICAgIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgICAgICBAbWVkaWEgKGhvdmVyOm5vbmUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQ29udGFpbmVyIHNlbGVjdG9yIGZvciBzd2F0Y2hlcyBvbiBQRFBcbi5zd2F0Y2gtb3B0IHtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tcGRwX2ZvbnQtc2l6ZTtcblxuICAgIC5zd2F0Y2gtb3B0aW9uIHtcbiAgICAgICAgJi5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLWJhY2tpbnN0b2NrLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoJHN3YXRjaGVzX3N3YXRjaC1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VsZWN0b3IgZm9yIGVycm9yIGNvbnRhaW5lciB3aGVuIHN3YXRjaGVzIGFyZSByZXF1aXJlZCBidXQgbm90IHNlbGVjdGVkLlxuICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IGNhbGMoI3skc3dhdGNoZXNfbGFiZWwtd2lkdGh9ICsgI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSk7XG5cbiAgICAgICAgLy8gQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgIC8vICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgLy8gICAgIG1hcmdpbi1sZWZ0OiBjYWxjKFxuICAgICAgICAvLyAgICAgICAgICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cH0gKyAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9XG4gICAgICAgIC8vICAgICApO1xuXG4gICAgICAgIC8vICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgLy8gICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgIH1cbn1cblxuLy8gQ29udGFpbmVyIHNlbGVjdG9yIGZvciBzd2F0Y2hlcyBpbiB0aWxlIGFuZCBkYWlseSBkZWFsIHRlYXNlci5cbltjbGFzc149J3N3YXRjaC1vcHQtJ10ge1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS10aWxlX2ZvbnQtc2l6ZTtcbiAgICBtaW4taGVpZ2h0OiAkc3dhdGNoZXMtLXRpbGVfbWluLWhlaWdodDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpZiAkc3dhdGNoZXMtLWNsaWNrYWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dhdGNoLW9wdGlvbiB7XG5cbiAgICAgICAgJi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LFxuICAgICAgICAmW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICYudGV4dCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1vcGFjaXR5O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaW1hZ2UsXG4gICAgICAgICAgICAmLmNvbG9yIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbi5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgLnN3YXRjaC1hdHRyaWJ1dGUuY29sb3Ige1xuICAgICAgICAuc3dhdGNoLW9wdGlvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgc2NhbGU6IDE7XG5cbiAgICAgICAgICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9hbHRvO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgc2NhbGU6IDEuMztcbiAgICAgICAgICAgICAgICAvLyBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfY29yaW5fbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3dhdGNoLW9wdGlvbi5zZWxlY3RlZCxcbiAgICAgICAgLnN3YXRjaC1vcHRpb24uYmlzLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIHNjYWxlOiAxLjM7XG4gICAgICAgICAgICAvLyBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYWx0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgICAuc3dhdGNoLW9wdGlvbi5pbWFnZSB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmxvY2sucHJvZHVjdHMtcmVsYXRlZCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3Byb2R1Y3QtdGlsZSB7XG4gICAgLnN3YXRjaC1vcHRpb24uaW1hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgICB9XG59IiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kdG9wYmFyX2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRvcGJhcl9oZWlnaHQ6IDIuN3JlbSAhZGVmYXVsdDtcblxuJHRvcGJhcl9pdGVtLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLXRleHQtY29sb3I6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kdG9wYmFyX2VuYWJsZS1ib3JkZXJzOiB0cnVlICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3I6ICRjb2xvcl9ibGFjayAhZGVmYXVsdDtcblxuJHRvcGJhcl9saW5rLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstaG92ZXItZGVjb3JhdGlvbjogJHRvcGJhcl9saW5rLWRlY29yYXRpb24gIWRlZmF1bHQ7XG5cbiRjb250YWluZXJfYmFja2dyb3VuZC10b3AtYmFyOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc310b3BiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgYmFja2dyb3VuZDogJHRvcGJhcl9iYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAkdG9wYmFyX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB6LWluZGV4OiAzMDI7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXJfaGVpZ2h0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGNvbG9yOiAkdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAmLS11c3BzIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob3RsaW5lIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhbmd1YWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QsXG4gICAgJl9faXRlbSA+IHVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXJfaGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHRvcGJhcl9lbmFibGUtYm9yZGVycykge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR0b3BiYXJfaXRlbS1ib3JkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICRjb2xvcjogJHRvcGJhcl9saW5rLWNvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkdG9wYmFyX2xpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAkZGVjb3JhdGlvbjogJHRvcGJhcl9saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJHRvcGJhcl9saW5rLWhvdmVyLWRlY29yYXRpb25cbiAgICAgICAgKTtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTtcbiAgICB9XG5cbiAgICAmX19ob3RsaW5lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19waG9uZS1udW1iZXIge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkdG9wYmFyX2l0ZW0tcGhvbmVfbnVtYmVyLWNvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkdG9wYmFyX2l0ZW0tcGhvbmVfbnVtYmVyLWNvbG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS10b3AtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRhaW5lcl9iYWNrZ3JvdW5kLXRvcC1iYXI7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbmgxIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMSk7XG59XG5cbmgyIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMik7XG59XG5cbmgzIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMyk7XG59XG5cbmg0IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNCk7XG59XG5cbmg1IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNSk7XG59XG5cbmg2IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNik7XG59XG5cbmEge1xuICAgIEBpbmNsdWRlIGxpbmsoKTtcbn1cblxudWwsXG5vbCB7XG4gICAgQGluY2x1ZGUgbGlzdCgpO1xuXG4gICAgPiBsaSB7XG4gICAgICAgIEBpbmNsdWRlIGxpc3QtaXRlbSgpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kdnRfZGlzYWJsZS1wb2ludGVyLWV2ZW50czogdHJ1ZSAhZGVmYXVsdDtcblxuLiN7JG5zfWltYWdlLXRlYXNlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciB7XG4gICAgICAgICN7JHJvb3R9X19waWN0dXJlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNob3cgdGV4dC1jb250ZW50IGFuZCBvdmVybGF5cyBvdmVyIHRoZSB2aWRlb1xuICAgICAgICAvLyBJZiBhZGRlZCBvbiBjb250ZW50LXdyYXBwZXIgd2lsbCBwcmV2ZW50IGludGVyYWN0aW9uIHdpdGggdmlkZW9cbiAgICAgICAgI3skcm9vdH1fX2NvbnRlbnQsXG4gICAgICAgICN7JHJvb3R9X19vdmVybGF5LFxuICAgICAgICAjeyRyb290fV9fZ3JhZGllbnQsXG4gICAgICAgICN7JHJvb3R9X19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW5kZXIgdmlkZW8gdGVhc2VyIG92ZXIgdGhlIGltYWdlXG4gICAgW2RhdGEtdmlkZW8tdGVhc2VyXSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC8vIEhpZGUgdmlkZW8gcGxhY2Vob2xkZXIgaWYgdmlkZW8gaXMgbm90IHJlbmRlcmVkXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHZpZGVvIGRvZXMgbm90IGZpdCBpbWFnZSBhc3BlY3QgcmF0aW8sIGl0IHdpbGwgY2VudGVyIGl0c2VsZiBpbiB0aGUgY29udGFpbmVyXG4gICAgW2lkXj0ndmlkZW8tdGVhc2VyJ10ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICBAaWYgJHZ0X2Rpc2FibGUtcG9pbnRlci1ldmVudHMge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uI3skbnN9dmlzdWFsbHktaGlkZGVuIHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XG59XG5cbi5saW5rcy5jcy1oZWFkZXJfX3VzZXItbmF2LmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgICAuY29sdW1uLm1haW4ge1xuICAgICAgICBwYWRkaW5nOiAwcmVtO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIC5jcy1jb250YWluZXItLXBhZ2UtcGRwLWRldGFpbHMtbmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIGhpZGUgcXR5IGluY3JlbWVudCBvbiBwcm9kdWN0IHBhZ2Vcbi5wcm9kdWN0LWluZm8tbWFpbi5jcy1idXlib3gge1xuICAgIC5jcy1idXlib3hfX3NlY3Rpb24tLXByb2R1Y3QtZm9ybSB7XG4gICAgICAgIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIHtcbiAgICAgICAgICAgIC5jcy1idXlib3hfX3F0eS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBuZWVkIHRvIG1vdmUgdGhpcyB0byBiZXR0ZXIgcGxhY2Vcbi5jcy1wcm9kdWN0LWRldGFpbHMge1xuICAgIC8vIHotaW5kZXg6IC0xO1xuICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgc2VjdGlvbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLW1haW4sXG4gICAgc2VjdGlvbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXJldmlld3Mge1xuICAgICAgICAvLyB3aWR0aDogNjAlO1xuICAgICAgICAvLyAuY3MtY29udGFpbmVyX19pbm5lcntcbiAgICAgICAgLy8gICAgIG1heC13aWR0aDogY2FsYygjeyRwYWdlX21heC13aWR0aH0gKiAwLjYpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tbWFpbiB7XG4gICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmV2aWV3cyB7XG4gICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIG5lZWQgdG8gbW92ZSB0aGlzIHRvIGJldHRlciBwbGFjZVxuLmNzLXBhZ2UtY2F0ZWdvcnkge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAuY2F0ZWdvcnktaW1hZ2Uge1xuICAgICAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgfVxufVxuXG4vLyBuZWVkIHRvIG1vdmUgdGhpcyB0byBiZXR0ZXIgcGxhY2VcbiNwcm9kdWN0LWF0dHJpYnV0ZS1zcGVjcy10YWJsZSB7XG4gICAgdHIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBuZWVkIHRvIG1vdmUgdGhpcyB0byBiZXR0ZXIgcGxhY2Vcbi8vIG1heCB3aWR0aCBvbiBjbXMgcGFnZXMgbmVlZCBzb21lIHdvcmtcbi5jb2x1bW5zIHtcbiAgICAuY29sdW1uLm1haW4ge1xuICAgICAgICAvLyBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICAgICAgLy8gbWFyZ2luOiAwIGF1dG87XG4gICAgfVxufVxuXG4vLyBuZWVkIHRvIG1vdmUgdGhpcyB0byBiZXR0ZXIgcGxhY2VcbiNmdW5kYWNqYS16ZHJvd3ktYml1c3Qge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmQ5ZGQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjVmNjtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICNlYzZlYTU7XG4gICAgfVxufVxuXG4vLyBuZWVkIHRvIG1vdmUgdGhpcyB0byBiZXR0ZXIgcGxhY2Vcbi5wcm9kdWN0LWFkaXRpb25hbC1tb2RhbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgI3Byb2R1Y3Qtc2l6ZS1tb2RhbCxcbiAgICAjcHJvZHVjdC1kZWxpdmVyeS1tb2RhbCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5jdXN0b20tbW9kYWwtb3BlbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC02MDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3Byb2R1Y3QtZm91bmRhdGlvbi1tb2RhbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LWluZGV4LWluZGV4IHtcbiAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtLl9hY3RpdmUge1xuICAgICAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gZXUgZGVsaXZlcnlcblxuLmV1LWRlbGl2ZXJ5LXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQ6ICNmYzA7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ZjMDtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuXG4uZXUtZGVsaXZlcnktd3JhcHBlciAuZXUtZGVsaXZlcnktdGV4dCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ldS1kZWxpdmVyeS13cmFwcGVyOmhvdmVyIHtcbiAgICBjb2xvcjogaW5pdGlhbDtcbn1cblxuLmV1LWRlbGl2ZXJ5LXdyYXBwZXI6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2YzYzIwMjtcbn1cblxuLmV1LWRlbGl2ZXJ5LXdyYXBwZXIgaW1nIHtcbiAgICB3aWR0aDogNTBweDtcbn1cblxuLy8gMjEuMDMuMjAyNSB0cnVzdGVkIHNob3BzIHN0YXJzIG9uIHByb2R1Y3QgbGlzdFxuLmNzLXByb2R1Y3QtdGlsZV9fbWFpbi5wcm9kdWN0LWl0ZW0tZGV0YWlscz4uY3MtcHJvZHVjdC10aWxlX19jb2xlY3Rpb24tc2t1LXdyYXBwZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5jcy1wcm9kdWN0LXRpbGVfX21haW4ucHJvZHVjdC1pdGVtLWRldGFpbHM+LmNzLXByb2R1Y3QtdGlsZV9fY29sZWN0aW9uLXNrdS13cmFwcGVyPi5jcy1wcm9kdWN0LXRpbGVfX2NvbGxlY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xufVxuXG4uY3MtcHJvZHVjdC10aWxlX19tYWluLnByb2R1Y3QtaXRlbS1kZXRhaWxzPi5jcy1wcm9kdWN0LXRpbGVfX2NvbGVjdGlvbi1za3Utd3JhcHBlcj4uY3MtcHJvZHVjdC10aWxlX19za3Uge1xuICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xufVxuXG4vLyBPIGZpcm1pZSBcbi5jbXMtZmlybWEtY29yaW4ge1xuICAgIHAge1xuICAgICAgICBtYXJnaW46IDJyZW07XG4gICAgfVxufVxuXG4vLyBSZWplc3RyYWNqYSBcbi5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmNob2ljZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG59XG5cblxuLmZvcm0gLmZpZWxkKy5maWVsZCB7XG4gICAgYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG59XG5cblxuLy8gRmluYWxpemFjamFcbi5jcy1jaGVja291dF9fc2lkZWJhciAudGFibGUtY2FwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuXG4ucHJvZHVjdC1pbmZvLW1haW4gLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLXByb2R1Y3QtZm9ybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cbiAgICAvLyAgdGhpcyBmb3JtIHNob3dzIHVwIHdoZW4gdmFsaWRhdGlvbiBmYWlsc1xuICAgICNwcm9kdWN0X2FkZHRvY2FydF9mb3JtIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxuXG4gICAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWluZm8tZm9ybS1hZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICNwcm9kdWN0LWRlbGl2ZXJ5LW1vZGFsIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgLmN1c3RvbS1tb2RhbC1vcGVuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzM3Yjg0MTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN0b2NrLmNzLWJ1eWJveF9fc3RvY2sge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG5cbiAgICAgICAgICAgIC5jcy1idXlib3hfX3N0b2NrLWljb24uY3MtYnV5Ym94X19zdG9jay1pY29uLS1hdmFpbGFibGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyLjRlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIuNGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtYWRpdGlvbmFsLW1vZGFscyB7XG4gICAgI3Byb2R1Y3QtZ3Bzci1tb2RhbCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5jdXN0b20tbW9kYWwtb3BlbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgIC5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1hZGl0aW9uYWwtbW9kYWxzIHtcbiAgICAgICAgI3Byb2R1Y3Qtc2l6ZS1tb2RhbCB7XG4gICAgICAgICAgICAuY3VzdG9tLW1vZGFsLW9wZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICNwcm9kdWN0LWdwc3ItbW9kYWwge1xuICAgICAgICAgICAgLmN1c3RvbS1tb2RhbC1vcGVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jcy1wYWdlLXByb2R1Y3RfX2J1eWJveCAucHJvZHVjdC1pbmZvLW1haW4uY3MtYnV5Ym94IHtcbiAgICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbn1cblxuLy8gI21vZGFsLWdwc3IgLmNvbnRlbnQgLmdwc3Iud3JhcHBlciB7XG4vLyB9XG5cbi5wcm9kdWN0LWluZm8tc2tsYWQta29uc2Vyd2FjamEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5wcm9kdWN0LWluZm8tc2tsYWQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWluZm8ta29uc2Vyd2FjamEge1xuICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgIC5rb25zZXJ3YWNqYS53cmFwcGVyIHtcbiAgICAgICAgICAgIHJvdy1nYXA6IDAuNXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmtvbnNlcndhY2phLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAucHJvZHVjdC1pbmZvLXNrbGFkLWtvbnNlcndhY2phIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAucHJvZHVjdC1pbmZvLXNrbGFkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaW5mby1rb25zZXJ3YWNqYSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19pdGVtLS1kZXNjcmlwdGlvbiAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5wcm9kdWN0LmF0dHJpYnV0ZS5kZXNjcmlwdGlvbiB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWluZm8tc2tsYWQta29uc2Vyd2FjamEge1xuICAgICAgICBvcmRlcjogMjtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1pbmZvLXRydXN0ZWQtcmV2aWV3cy1zZWN0aW9uIHtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxufVxuXG4vLyBob21lIHN0eWxlcyBuZXcgc2VjdGlvbiAzMC4xMC4yMDI1XG4uc2VjdGlvbi13cmFwcGVyLnNlY3Rpb24tNi5yb3cuaG9tZS1zZWN0aW9uLTYge1xuICAgIC5zZWN0aW9uLWNhcHRpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnNsaWRlci1pdGVtcy13cmFwZXIge1xuICAgICAgICAuYmxvY2sge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuZm90b3JhbWFfX3N0YWdlX19mcmFtZS5mb3RvcmFtYS12aWRlby1jb250YWluZXJ7XG4gICAgLnByb2R1Y3QtdmlkZW97XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMy80LjU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIC55dHAtZ3JhZGllbnQtdG9we1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5ibG9nLXBhZ2UsXG4uYmxvZy1wb3N0LXZpZXd7XG4gICAgLy8gYmxvZyBsYXlvdXRzIG1heCB3aWR0aFxuICAgICNtYWluY29udGVudHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gICAgfVxuICAgIC5jb2x1bW4ubWFpbntcbiAgICAgICAgcGFkZGluZzogMnJlbSAwIDA7XG4gICAgfVxuICAgIC8vIHBhZ2UgdGl0bGVcbiAgICAucGFnZS10aXRsZS13cmFwcGVye1xuICAgICAgICAucGFnZS10aXRsZXtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBsaW5vdHlwZS1kaWRvdC1oZWFkbGluZSwgc2VyaWY7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiA4cmVtIDAgMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDJyZW0gMCAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGJyZWFkY3J1bWJzXG4gICAgLmNzLWJyZWFkY3J1bWJze1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBjYXRlZ29yaWVzXG4gICAgLndpZGdldC5ibG9jay5ibG9jay1jYXRlZ29yaWVze1xuICAgICAgICAuYmxvY2stdGl0bGV7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5hY2NvcmRpb257XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLml0ZW17XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC02MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGE6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC02MDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pdGVtOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLjdlbTtcbiAgICAgICAgICAgICAgICByaWdodDogMC43ZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaXRlbTpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGdyaWQgdGlsZXNcbiAgICBkaXYucG9zdC1saXN0LXdyYXBwZXJ7XG4gICAgICAgIC5wb3N0LWxpc3QtaXRlbS5jb2wtbWQtMTI6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgICAucG9zdC1jb250ZW50e1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgLnBvc3QtZnRpbWctaGxke1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDY2JTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAucG9zdC1kZXNjcmlwdGlvbntcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMyU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3QtbGlzdC1pdGVte1xuICAgICAgICAgICAgLnBvc3QtaG9sZGVye1xuICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaDIucG9zdC10aXRsZXtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBhe1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC04MDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gdGFnc1xuICAgIC5ibG9jay10YWdjbGF1ZHtcbiAgICAgICAgLmJsb2NrLXRpdGxle1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAudGFnY2xhdWQtaGxke1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIG1hcmdpbjogMnJlbTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2NvcmluX2xpZ2h0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHBvc3QgY29tZW50c1xuICAgICNwb3N0LWNvbW1lbnRze1xuICAgICAgICAuYy1yZXBseWZvcm17XG4gICAgICAgICAgICB0ZXh0YXJlYXtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgICAgaW5wdXR7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBidXR0b257XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLy8gdG9vbGJhciBzdHlsZXNcbi50b29sYmFyLnRvb2xiYXItYmxvZy1wb3N0c3tcbiAgICAuY3MtcGFnaW5hdGlvbl9fY29udGVudHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgICAgICAucGFnZXMtbGFiZWx7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnBhZ2VzLWl0ZW0tcHJldmlvdXMsXG4gICAgICAgIC5wYWdlcy1pdGVtLW5leHR7XG4gICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgfVxuICAgICAgICBzdmd7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLml0ZW1zLnBhZ2VzLWl0ZW1ze1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAuaXRlbXtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLmN1c3RvbS1tb2RhbC1vcGVuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwaW5rO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAucHJlc2VudCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgYW5pbWF0aW9uOiB0aWx0LXNoYWtpbmcgMXM7XG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgdGlsdC1zaGFraW5nIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAxMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAyMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAzMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgNDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJvem1pYXIsXG4gICAgLmRvc3Rhd2Ege1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxufVxuXG4uY3VzdG9tLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgd2lkdGg6IDBweDtcblxuICAgIC5jb250ZW50IHtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1tb2RhbC1jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBtYXJnaW46IDFyZW07XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLmN1c3RvbS1tb2RhbC5vcGVuIHtcbiAgICB6LWluZGV4OiA5OTc7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIG1heC13aWR0aDogOTV2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDgwMHB4O1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICAvLyBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgLy8gICAgIHdpZHRoOiA5NSU7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICAub3ZlcmxheSB7XG4gICAgICAgIHotaW5kZXg6IDk5ODtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMGIzO1xuICAgIH1cbn1cblxuI21vZGFsLXJvem1pYXJvd2thIHtcbiAgICAudGFibGUtcmVzcG9uc2l2ZS1zIHtcbiAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDtcblxuICAgICAgICAudGFibGUge1xuICAgICAgICAgICAgd2lkdGg6IDEyMDBweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnN0aWNreSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jbW9kYWwtZG9zdGF3YSB7XG4gICAgLnRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgfVxufSIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLmNzLWhlYWRlcl9fc2VhcmNoLmNzLWhlYWRlcl9fc2VhcmNoLS1hY3RpdmUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuXG4gICAgLmNzLWhlYWRlci1zZWFyY2gge1xuICAgICAgICBwb3NpdGlvbjogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxODByZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjc2VhcmNoX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgIC8vIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNjBweCk7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxODByZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuXG4gICAgICAgIGRsIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzg4ODg4ODtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiB7XG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2Uge1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDRyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDNmcjtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1nYXA6IDBweDtcbiAgICAgICAgICAgIGdyaWQtcm93LWdhcDogMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICAgICAudGVybSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiAxIC8gMiAvIDQgLyAzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdF9hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogMiAvIDEgLyAzIC8gMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNhdGVnb3J5IHtcbiAgICAgICAgICAgICAgICBncmlkLWFyZWE6IDMgLyAxIC8gNCAvIDI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXRlZ29yeSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdXRvY29tcGxldGUtbGlzdC5wcm9kdWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWltYWdlLWJveCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4uY21zLWhvbWUge1xuICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDU4NjhlO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBsaW5vdHlwZS1kaWRvdC1oZWFkbGluZSwgc2VyaWY7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJsb2NrIGJhY2tncm91bmRzXG4gICAgLmNvbHVtbi5tYWluIHtcblxuICAgICAgICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tc3RhdGljLWJsb2NrOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVGNUZCO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gMDQuMDMuMjAyNiByZWRpbmdvXG4gICAgICAgIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1zdGF0aWMtYmxvY2s6bnRoLWNoaWxkKDcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRUY1RkI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZWN0aW9ucyBtYXJnaW5zXG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXIuc2VjdGlvbi0xIHtcbiAgICAgICAgICAgIG1hcmdpbjogM3JlbSAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLnNlY3Rpb24tNyxcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci5zZWN0aW9uLTMsXG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXIuc2VjdGlvbi00LFxuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLnNlY3Rpb24tNSxcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci5zZWN0aW9uLTYge1xuICAgICAgICAgICAgbWFyZ2luOiA0cmVtIGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMnJlbSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VjdGlvbi13cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay10cmFjayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLy8gZmlyc3Qgc2VjdGlvblxuICAgIC5zZWN0aW9uLXdyYXBwZXIuc2VjdGlvbi0xIHtcbiAgICAgICAgLmNvbC1tZC02IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA2NjtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM1NXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBsaW5vdHlwZS1kaWRvdC1oZWFkbGluZSwgc2VyaWY7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDNyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNzVweDtcblxuICAgICAgICAgICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cmVtIDdyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLW1kLTYuY29sLW1kLTY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgLmNvbC1tZC02LmNvbC1tZC02OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wtbWQtNi5jb2wtbWQtNjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzZWNvbmQgc2VjdGlvblxuICAgIC5zZWN0aW9uLXdyYXBwZXIuc2VjdGlvbi0yIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzdBMkI3NztcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbGlub3R5cGUtZGlkb3QtaGVhZGxpbmUsIHNlcmlmO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLWxpc3QuZHJhZ2dhYmxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1pdGVtLWRldGFpbHMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1pdGVtLWluZm8ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzdBMkI3NztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzdBMkI3NztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvLyB0aGlyZCBzZWN0aW9uXG4gICAgLnNlY3Rpb24td3JhcHBlci5zZWN0aW9uLTMge1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIHZpZGVvIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaW1nLXdyYXBwcGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJvdyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBsaW5vdHlwZS1kaWRvdC1oZWFkbGluZSwgc2VyaWY7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDFyZW0gMCAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSA0cmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ODQ4NDg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBmb3VydGggc2VjdGlvblxuICAgIC5zZWN0aW9uLXdyYXBwZXIuc2VjdGlvbi00IHtcblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM1NzU2NUE7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGxpbm90eXBlLWRpZG90LWhlYWRsaW5lLCBzZXJpZjtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucG9wdWxhci1jYXRlZ29yaWVzLXdyYXBlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG5cbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNTc1NjVBO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBmaWZ0aCBzZWN0aW9uXG4gICAgLnNlY3Rpb24td3JhcHBlci5zZWN0aW9uLTUge1xuICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2MwOTE5NztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbGlub3R5cGUtZGlkb3QtaGVhZGxpbmUsIHNlcmlmO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2MwOTE5NztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdGFycyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDJyZW0gMDtcblxuICAgICAgICAgICAgICAgIC5zdGFyOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uL2ltYWdlcy9pY29ucy9zdGFyLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAubGVmdCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICAgICAudG9wIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD0xMjUwcHgnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYm90dG9tIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9MTI1MHB4Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNlbnRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMmNhZDQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hcnJvdzo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvaWNvbnMvd3JpdHRlbi1hcnJvdy5zdmcnKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1MHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFycm93LXRvcC1sZWZ0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFycm93LXRvcC1yaWdodDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hcnJvdy1ib3R0b20tcmlnaHQ6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE3MmRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFycm93LWJvdHRvbS1sZWZ0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDkwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNzBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxNzVkZWcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTE3MDBweCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLmFycm93OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9MTUwMHB4Jykge1xuICAgICAgICAgICAgICAgICAgICAuYXJyb3c6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD0xMzUwcHgnKSB7XG4gICAgICAgICAgICAgICAgICAgIC5hcnJvdzo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTEyNTBweCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLmFycm93OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAlO1xuXG4gICAgICAgICAgICAgICAgLnRvcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PTEyNTBweCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxlZnQsXG4gICAgICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICNjMDkxOTc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNjMDkxOTc7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNpeHRoIHNlY3Rpb25cbiAgICAuc2VjdGlvbi13cmFwcGVyLnNlY3Rpb24tNiB7XG5cbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3RzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdHM+aDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGxpbm90eXBlLWRpZG90LWhlYWRsaW5lLCBzZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdHM+cCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1wcm9kdWN0cy1saXN0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzaXh0aCBzZWN0aW9uXG4gICAgLnNlY3Rpb24td3JhcHBlci5zZWN0aW9uLTcge1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA3NTBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbGlub3R5cGUtZGlkb3QtaGVhZGxpbmUsIHNlcmlmO1xuICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnN1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSA0cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNDg0ODQ4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW06bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlY3Rpb24td3JhcHBlci5zZWN0aW9uLW5ld3NsZXR0ZXIucm93IHtcbiAgICAgICAgLm5ld3NsZXR0ZXItd3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTE3MHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNTRweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNDVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTRweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5uZXdzbGV0dGVyLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogbGlub3R5cGUtZGlkb3QtaGVhZGxpbmUsIHNlcmlmO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5uZXdzbGV0dGVyLXN1YnRpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIzcHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmN0YSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAyN3B4O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjFiNmQzO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubmV3c2xldHRlci1pbWcge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDlweDtcbiAgICAgICAgICAgICAgICByaWdodDogNjFweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjU3cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFiNmQzO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDExcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbGFyZ2U7XG5cbiAgICAgICAgICAgICAgICAuY29udGVudC1saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI3OHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDNweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5ub3JtYWwtcHJpY2UuZXh0cmEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAubm9ybWFsLXByaWNlLXRleHQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3RodW5kZXJiaXJkICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl90aHVuZGVyYmlyZCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm9sZC1wcmljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkY29sb3JfYWx0bztcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICAgIC5vbGQtcHJpY2UtdGV4dCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9kb3ZlLWdyYXkgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW0gIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldywgLmJyYW5kcy1pbmRleC1pbmRleCB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICAgIC8vIFByemVtZWtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLm9tbmlidXMtcHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9kb3ZlLWdyYXk7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ub21uaWJ1cy1wcmljZSB7XG4gICAgY29sb3I6ICRjb2xvcl9kb3ZlLWdyYXk7XG4gICAgb3JkZXI6IC0xO1xuICAgIC8vIG9tbmlidXMgcHJpY2Ugd2FzIGRpc2FibGVkIDEzLjAzLjIwMjNcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJGNvbG9yX2FsdG87XG59XG5cbi5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQsXG4uY3MtYXV0b2NvbXBsZXRlX19pdGVtLFxuLnNsaWNrLXNsaWRlciB7XG4gICAgLm9tbmlidXMtcHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCxcbi5jcy1hdXRvY29tcGxldGVfX2l0ZW0sXG4uc2xpY2stc2xpZGVyIHtcbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAub2xkLXByaWNlLXRleHQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCxcbi5jcy1hdXRvY29tcGxldGVfX2l0ZW0sXG4uc2xpY2stc2xpZGVyIHtcbiAgICAubm9ybWFsLXByaWNlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAubm9ybWFsLXByaWNlLXRleHQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCxcbi5jcy1hdXRvY29tcGxldGVfX2l0ZW0sXG4uc2xpY2stc2xpZGVyIHtcbiAgICAubm9ybWFsLXByaWNlLmV4dHJhIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59IiwiLm1wLXJld2FyZC1jYXJ0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1wLXJld2FyZC1wb2ludHMubXAtcHJvZHVjdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb2wge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50LFxuLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQsXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLXRyYW5zYWN0aW9uICNtYWluY29udGVudCB7XG5cbiAgbWF4LXdpZHRoOiAxMjgwcHg7XG5cbn1cblxuI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYsXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLXRyYW5zYWN0aW9uICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2LFxuLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuYWNjb3VudC5jdXN0b21lci1yZWZlcnJhbC1pbmRleCAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiB7XG5cbiAgbWFyZ2luLXRvcDogNHJlbTtcblxuICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG59XG5cbi5hY2NvdW50LmN1c3RvbWVyLXJlZmVycmFsLWluZGV4ICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2LFxuLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdixcbi5hY2NvdW50LmN1c3RvbWVyLXJld2FyZHMtdHJhbnNhY3Rpb24gI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYge1xuXG4gIHdpZHRoOiBjYWxjKDEwMCUgLyA0KTtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgzMywgMzMsIDMzLCAwLjI4KTtcbiAgZmxvYXQ6IGxlZnQ7XG5cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcblxuICAuYWNjb3VudC5jdXN0b21lci1yZWZlcnJhbC1pbmRleCAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdixcbiAgLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdixcbiAgLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy10cmFuc2FjdGlvbiAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiB7XG5cbiAgICB3aWR0aDogMTAwJTtcblxuICB9XG5cbn1cblxuLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYsXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLWluZGV4ICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2LFxuLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy10cmFuc2FjdGlvbiAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiB7XG5cbiAgcGFkZGluZy10b3A6IDJyZW07XG5cbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbn1cblxuLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLnRpdGxlLmJsb2NrLWNvbGxhcHNpYmxlLW5hdi10aXRsZSxcbi5hY2NvdW50LmN1c3RvbWVyLXJld2FyZHMtaW5kZXggI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLnRpdGxlLmJsb2NrLWNvbGxhcHNpYmxlLW5hdi10aXRsZSxcbi5hY2NvdW50LmN1c3RvbWVyLXJld2FyZHMtdHJhbnNhY3Rpb24gI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLnRpdGxlLmJsb2NrLWNvbGxhcHNpYmxlLW5hdi10aXRsZSB7XG5cbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG5cbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG5cbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xuXG59XG5cbi5hY2NvdW50LmN1c3RvbWVyLXJlZmVycmFsLWluZGV4ICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2IC5uYXYuaXRlbXMsXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLWluZGV4ICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2IC5uYXYuaXRlbXMsXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLXRyYW5zYWN0aW9uICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2IC5uYXYuaXRlbXMge1xuXG4gIHBhZGRpbmctdG9wOiAycmVtO1xuXG59XG5cbi5hY2NvdW50LmN1c3RvbWVyLXJlZmVycmFsLWluZGV4ICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2IC5uYXYuaXRlbS5jdXJyZW50LFxuLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAubmF2Lml0ZW0uY3VycmVudCxcbi5hY2NvdW50LmN1c3RvbWVyLXJld2FyZHMtdHJhbnNhY3Rpb24gI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLm5hdi5pdGVtLmN1cnJlbnQge1xuXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgYmxhY2s7XG5cbn1cblxuLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLm5hdi5pdGVtLFxuLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAubmF2Lml0ZW0sXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLXRyYW5zYWN0aW9uICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2IC5uYXYuaXRlbSB7XG5cbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xuXG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cbn1cblxuLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5ibG9jay5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLm5hdi5pdGVtIGEsXG4uYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLWluZGV4ICNtYWluY29udGVudCAuYmxvY2suYmxvY2stY29sbGFwc2libGUtbmF2IC5uYXYuaXRlbSBhLFxuLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy10cmFuc2FjdGlvbiAjbWFpbmNvbnRlbnQgLmJsb2NrLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAubmF2Lml0ZW0gYSB7XG5cbiAgY29sb3I6ICM2OTY5Njk7XG5cbn1cblxuLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5jb2x1bW4ubWFpbixcbi5hY2NvdW50LmN1c3RvbWVyLXJld2FyZHMtaW5kZXggI21haW5jb250ZW50IC5jb2x1bW4ubWFpbixcbi5hY2NvdW50LmN1c3RvbWVyLXJld2FyZHMtdHJhbnNhY3Rpb24gI21haW5jb250ZW50IC5jb2x1bW4ubWFpbiB7XG5cbiAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG5cbiAgd2lkdGg6IGNhbGMoMTAwJSAtICgxMDAlIC8gNCkpO1xuXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG5cbiAgLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5jb2x1bW4ubWFpbixcbiAgLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQgLmNvbHVtbi5tYWluLFxuICAuYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLXRyYW5zYWN0aW9uICNtYWluY29udGVudCAuY29sdW1uLm1haW4ge1xuXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICgxMDAlIC8gMykpO1xuXG4gIH1cblxufVxuXG4uY3Mtc2VsZWN0IHtcblxuICBkaXNwbGF5OiBibG9jaztcblxuICBmb250LXNpemU6IDFlbTtcblxuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcblxuICBwYWRkaW5nOiAwLjc1ZW0gMi4zZW0gMC43NWVtIDFlbTtcblxuICBjb2xvcjogIzIxMjEyMTtcblxuICBib3JkZXItcmFkaXVzOiAwO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG5cbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICB3aWR0aDogMTAwJTtcblxuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgbWFyZ2luOiAwIDAgMC4yZW07XG5cbiAgb3V0bGluZTogMDtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG5cbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcblxuICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG5cbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG5cbn1cblxuLmJsb2NrLXJld2FyZC1kYXNoYm9hcmQge1xuICBjb2xvcjogIzMzMzMzMztcbn1cblxuLmZvcm0uZm9ybS1yZXdhcmRzLXNldHRpbmcgLmxlZ2VuZCBzcGFuIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuXG4uZmllbGRzZXQgLmVtYWlsLW5vdGlmaWNhdGlvbiBzcGFuIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuXG5pbnB1dCNub3RpZmljYXRpb24tZXhwaXJlLFxuaW5wdXQjbm90aWZpY2F0aW9uLXVwZGF0ZSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjA0LCAyMDQsIDIwNCk7XG4gIGJvcmRlci1pbWFnZTogaW5pdGlhbDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG5pbnB1dCNub3RpZmljYXRpb24tZXhwaXJlOmNoZWNrZWQsXG5pbnB1dCNub3RpZmljYXRpb24tdXBkYXRlOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtc2l6ZTogMTRweCAxNHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5cbi5ibG9jay1yZXdhcmQtZGFzaGJvYXJkIC5lbWFpbC1ub3RpZmljYXRpb24gc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5ibG9jay1yZXdhcmQtZGFzaGJvYXJkIC5wcmltYXJ5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG4uYmxvY2stcmV3YXJkLWRhc2hib2FyZCAuYWN0aW9uLnNhdmUucHJpbWFyeSxcbi5ib3gtY29udGVudCAuYWN0aW9uLnByaW1hcnkgYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogI2ZmYjNiYjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAxMnB4IDQwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgYm94LXNoYWRvdyAwLjNzIGVhc2U7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4uYmxvY2stcmV3YXJkLWRhc2hib2FyZCAuYWN0aW9uLnNhdmUucHJpbWFyeTpob3Zlcixcbi5ib3gtY29udGVudCAuYWN0aW9uLnByaW1hcnkgYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICBib3gtc2hhZG93OiAwIDEycHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuXG4uYmxvY2stcmV3YXJkLWRhc2hib2FyZCAuYWN0aW9uLnNhdmUucHJpbWFyeTphY3RpdmUsXG4uYm94LWNvbnRlbnQgLmFjdGlvbi5wcmltYXJ5IGJ1dHRvbjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuXG4udXJsX2FuZF9jb2RlIC5jb3B5IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZmZiM2JiO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDU1cHg7XG4gIGhlaWdodDogMzBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IGluaGVyaXQ7XG59XG5cbi5tcF9pbnB1dCB7XG4gIGhlaWdodDogMzBweDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xufVxuXG5pbnB1dC5tcC1pbnB1dCB7XG4gIHdpZHRoOiA4MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDZweCAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5pbnZpdGUtZnJpZW5kIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMjdweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHJlc2l6ZTogbm9uZTtcbn1cblxuLm1wLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnNlbmQtZnJvbSB7XG4gIGhlaWdodDogMjNweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmFjdGlvbi5wcmltYXJ5LmJ0LXNlbmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG5cbiAgLmFjY291bnQuY3VzdG9tZXItcmVmZXJyYWwtaW5kZXggI21haW5jb250ZW50IC5jb2x1bW4ubWFpbixcbiAgLmFjY291bnQuY3VzdG9tZXItcmV3YXJkcy1pbmRleCAjbWFpbmNvbnRlbnQgLmNvbHVtbi5tYWluLFxuICAuYWNjb3VudC5jdXN0b21lci1yZXdhcmRzLXRyYW5zYWN0aW9uICNtYWluY29udGVudCAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG4jc2VuZC1ieSxcbi5pbnZpdGUtZnJpZW5kIHRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgcGFkZGluZzogNXB4IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICMzMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbnZpdGUtbWVzc2FnZSB0ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDVweCAxNXB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjMzMzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGhlaWdodDogMjAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICByZXNpemU6IG5vbmU7XG59XG5cbiNzZW5kLWJ5OmhvdmVyLFxuLmludml0ZS1mcmllbmQgdGV4dGFyZWE6aG92ZXIsXG4uaW52aXRlLW1lc3NhZ2UgdGV4dGFyZWE6aG92ZXIsXG5pbnB1dC5tcC1pbnB1dDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzg4ODtcbn1cblxuI3NlbmQtYnk6Zm9jdXMsXG4uaW52aXRlLWZyaWVuZCB0ZXh0YXJlYTpmb2N1cyxcbi5pbnZpdGUtbWVzc2FnZSB0ZXh0YXJlYTpmb2N1cyxcbmlucHV0Lm1wLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmludml0ZS1mcmllbmQgLmNvbW1lbnQge1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uaXRlbS1iYWxhbmNlIC5hdmFpbGFibGUge1xuICBiYWNrZ3JvdW5kOiAjNmJjNzcyO1xufVxuXG4uaXRlbS1iYWxhbmNlIC5lYXJuZWQge1xuICBiYWNrZ3JvdW5kOiAjZmZiM2JiO1xufVxuXG4uaXRlbS1iYWxhbmNlIC5wYWlkIHtcbiAgYmFja2dyb3VuZDogI2RiYzE4Mztcbn1cblxuI21wX3Jld2FyZF9yZWZlcnJhbCAuYm94LWNvbnRlbnQsXG4udGFibGUtd3JhcHBlci5hZGRpdGlvbmFsLWFkZHJlc3Nlcyxcbi50YWJsZS13cmFwcGVyLnJldmlld3MsXG4udGFibGUtd3JhcHBlci50cmFuc2FjdGlvbnMtcmVjZW50IHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuI21wX3Jld2FyZF9yZWZlcnJhbCAuYm94LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLnRhYmxlLXdyYXBwZXIuYWRkaXRpb25hbC1hZGRyZXNzZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLnRhYmxlLXdyYXBwZXIub3JkZXJzLWhpc3Rvcnk6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudDo6LXdlYmtpdC1zY3JvbGxiYXIsXG4udGFibGUtd3JhcHBlci5yZXZpZXdzOjotd2Via2l0LXNjcm9sbGJhcixcbi50YWJsZS13cmFwcGVyLnRyYW5zYWN0aW9ucy1yZWNlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgaGVpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuI21wX3Jld2FyZF9yZWZlcnJhbCAuYm94LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnRhYmxlLXdyYXBwZXIuYWRkaXRpb25hbC1hZGRyZXNzZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnRhYmxlLXdyYXBwZXIub3JkZXJzLWhpc3Rvcnk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4udGFibGUtd3JhcHBlci5yZXZpZXdzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbi50YWJsZS13cmFwcGVyLnRyYW5zYWN0aW9ucy1yZWNlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogI2I2YjZiNjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuI21wX3Jld2FyZF9yZWZlcnJhbCAuYm94LWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLnRhYmxlLXdyYXBwZXIuYWRkaXRpb25hbC1hZGRyZXNzZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLnRhYmxlLXdyYXBwZXIub3JkZXJzLWhpc3Rvcnk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsXG4udGFibGUtd3JhcHBlci5yZXZpZXdzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3Zlcixcbi50YWJsZS13cmFwcGVyLnRyYW5zYWN0aW9ucy1yZWNlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzlhOWE5YTtcbn1cblxudGFibGUjYWRkaXRpb25hbC1hZGRyZXNzZXMtdGFibGUsXG50YWJsZSNteS1yZXZpZXdzLXRhYmxlLFxudGFibGUjcmV3YXJkcy10cmFuc2FjdGlvbi10YWJsZSxcbnRhYmxlI3RyYW5zYWN0aW9ucy1oaXN0b3J5IHtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICB3aWR0aDogMTEwJTtcbn1cblxudGFibGUjcmV3YXJkcy10cmFuc2FjdGlvbi10YWJsZSB0aGVhZCxcbnRhYmxlI3RyYW5zYWN0aW9ucy1oaXN0b3J5IHRoZWFkIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkY2RjZGM7XG59XG5cbi5ibG9jay1yZXdhcmQtZGFzaGJvYXJkIC5jb2wsXG4uYmxvY2stcmV3YXJkLWRhc2hib2FyZC10cmFuc2FjdGlvbiAuY29sLFxuLmJsb2NrLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5jb2wsXG4udGFibGUtd3JhcHBlci5yZXZpZXdzIC5jb2wsXG50YWJsZSN0cmFuc2FjdGlvbnMtaGlzdG9yeSAuY29sIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNHB4O1xufVxuXG4uYmxvY2stcmV3YXJkLWRhc2hib2FyZCAuZmllbGQuY2hvaWNlLFxuLmJsb2NrLXJld2FyZC1kYXNoYm9hcmQtdHJhbnNhY3Rpb24gLmZpZWxkLmNob2ljZSxcbi5ibG9jay5ibG9jay1hZGRyZXNzZXMtbGlzdCAuZmllbGQuY2hvaWNlLFxuLnRhYmxlLXdyYXBwZXIucmV2aWV3cyAuZmllbGQuY2hvaWNlLFxudGFibGUjdHJhbnNhY3Rpb25zLWhpc3RvcnkgLmZpZWxkLmNob2ljZSB7XG4gIG1hcmdpbjogNXB4IDA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY3MtZGFzaGJvYXJkX19zaWRlYmFyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQpO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA0KTtcbiAgfVxufVxuXG4ucmV3YXJkLXRyYW5zYWN0aW9ucy10b29sYmFyLnRvb2xiYXIuYm90dG9tIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20gbGkuaXRlbS5jcy1wYWdpbmF0aW9uX19pdGVtLFxuLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSBsaS5pdGVtLmN1cnJlbnQuY3MtcGFnaW5hdGlvbl9faXRlbS5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG59XG5cbi5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20gLml0ZW0uY3MtcGFnaW5hdGlvbl9faXRlbSBhLFxuLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSBzcGFuLmNzLXBhZ2luYXRpb25fX251bWJlci5jcy1wYWdpbmF0aW9uX19udW1iZXItLWN1cnJlbnQge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjOGI3MDMzO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20gbGkuaXRlbS5jcy1wYWdpbmF0aW9uX19pdGVtIGEsXG4ucmV3YXJkLXRyYW5zYWN0aW9ucy10b29sYmFyLnRvb2xiYXIuYm90dG9tIGxpLml0ZW0uY3MtcGFnaW5hdGlvbl9faXRlbSBzcGFuLFxuLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSBsaS5pdGVtLmN1cnJlbnQuY3MtcGFnaW5hdGlvbl9faXRlbS5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IGEsXG4ucmV3YXJkLXRyYW5zYWN0aW9ucy10b29sYmFyLnRvb2xiYXIuYm90dG9tIGxpLml0ZW0uY3VycmVudC5jcy1wYWdpbmF0aW9uX19pdGVtLmNzLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQgc3BhbiB7XG4gIGNvbG9yOiAjOGI3MDMzO1xufVxuXG4ucmV3YXJkLXRyYW5zYWN0aW9ucy10b29sYmFyLnRvb2xiYXIuYm90dG9tIHAubGFiZWwucGFnZXMtbGFiZWwuY3MtcGFnaW5hdGlvbl9fcHJlZml4LWxhYmVsIHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSAucGFnZXMuY3MtcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSAuY3MtdG9vbGJhcl9faXRlbS5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20gLmNzLXRvb2xiYXJfX2l0ZW0uY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50IHAge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucmV3YXJkLXRyYW5zYWN0aW9ucy10b29sYmFyLnRvb2xiYXIuYm90dG9tIC5jcy10b29sYmFyX19pdGVtLmNzLXRvb2xiYXJfX2l0ZW0tLWFtb3VudCBzcGFuLnRvb2xiYXItbnVtYmVyIHtcbiAgcGFkZGluZzogMCAycHg7XG59XG5cbi5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20gLmNzLXRvb2xiYXJfX2l0ZW0uY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuI215LW9yZGVycy10YWJsZSB0aC5jb2wge1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbnRhYmxlI215LW9yZGVycy10YWJsZSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiAxMTAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5ibG9jay5yZWZlci12aWEtc29jaWFsIC5zb2NpYWwtYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5ibG9jay5yZWZlci12aWEtc29jaWFsIC5zb2NpYWwtYnV0dG9ucyBhIHtcbiAgY29sb3I6ICNmZmIzYmI7XG4gIGZvbnQtc2l6ZTogMzVweDtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuXG4uYmxvY2sucmVmZXItdmlhLXNvY2lhbCB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59XG5cbnRhYmxlLmRhdGEudGFibGUge1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbnRkLmNzLWNhcnQtdGFibGVfX2NvbC5jcy1jYXJ0LWl0ZW1fX3F0eS5jb2wucXR5IHtcbiAgcGFkZGluZzogMCAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGQuY29sLmNvbC1tZXRob2Qge1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAudGFibGUtd3JhcHBlci50cmFuc2FjdGlvbnMtcmVjZW50IC50YWJsZSB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC50YWJsZS13cmFwcGVyLnRyYW5zYWN0aW9ucy1yZWNlbnQgLnRhYmxlIHRib2R5IHRkOmJlZm9yZSB7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpIFwiOiBcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgLnRhYmxlLXdyYXBwZXIudHJhbnNhY3Rpb25zLXJlY2VudCAudGFibGUgdGJvZHkgdGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBwYWRkaW5nOiAwLjJyZW07XG4gIH1cblxuICAudGFibGUtd3JhcHBlci50cmFuc2FjdGlvbnMtcmVjZW50IC50YWJsZSB0Ym9keSB0ZC5jb2wuY29tbWVudCxcbiAgdGFibGUjdHJhbnNhY3Rpb25zLWhpc3RvcnkgdGJvZHkgdGQuY29sLmNvbW1lbnQge1xuICAgIHRleHQtd3JhcDogYXV0bztcbiAgfVxuXG4gIC50YWJsZS13cmFwcGVyLnRyYW5zYWN0aW9ucy1yZWNlbnQgLnRhYmxlIHRib2R5IHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzljOWM5YztcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20gLnBhZ2VzLmNzLXBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB9XG5cbiAgLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSAuY3MtdG9vbGJhcl9faXRlbS5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnJld2FyZC10cmFuc2FjdGlvbnMtdG9vbGJhci50b29sYmFyLmJvdHRvbSAuY3MtdG9vbGJhcl9faXRlbS5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5yZXdhcmQtdHJhbnNhY3Rpb25zLXRvb2xiYXIudG9vbGJhci5ib3R0b20ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgfVxufSIsIi5jbXMtd2FydW5raS1kb3N0YXcgIHtcbiAgICAuY29sdW1ucy5jb2x1bW4ubWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDRyZW0gMnJlbSAwO1xuICAgIH1cbn0gXG5cbi5iZi10ZXh0IHtcbiAgICBmb250LXNpemU6IDlyZW07XG59IiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXgge1xuICAgIC5tcF9yZXdhcmRfbWVzc2FnZXMge1xuICAgICAgICBtYXgtd2lkdGg6IDkzcmVtO1xuICAgICAgICAubWVzc2FnZXMge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tcF9yZXdhcmRfbWVzc2FnZXMubWVzc2FnZXMge1xuICAgIHBhZGRpbmctYm90dG9tOiA5MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICBcbn1cblxuXG4ucGF5bWVudC1tZXRob2QtcHJ6ZWxld3kyNF9fbWV0aG9kLS1wcm9tb3RlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wYXltZW50LW1ldGhvZC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0Ll9hY3RpdmUge1xuICAgIG1heC13aWR0aDogNDcwcHg7XG59IiwiLmNtcy1ibGFjay1mcmlkYXktaHRtbCwgLmNtcy1uZXdzbGV0dGVyLWxhbmRpbmctcGFnZS1odG1sIHtcbiAgICAuY29sdW1ucyB7XG4gICAgICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgfVxuICAgIC5iZi10ZXh0IHtcbiAgICBmb250LXNpemU6IDUuNXJlbTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5iZi1yb3cge1xubWFyZ2luOiAwIGF1dG87XG59XG5cbn1cblxuXG4iLCIvKiBwbHVtcm9ja2V0IHJtYSBleHRlbnNpb24gY3VzdG9tIHN0eWxlcyAqL1xuLnNhbGVzLWd1ZXN0LXZpZXcsXG4uc2FsZXMtZ3Vlc3QtaW52b2ljZSxcbi5zYWxlcy1ndWVzdC1zaGlwbWVudCB7XG4gICAgdGFibGUjbXktb3JkZXJzLXRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIC5vcmRlci1zdGF0dXMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAzcHggMCAwO1xuICAgICAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgxLnBhZ2UtdGl0bGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIH1cblxuICAgIC5hY3Rpb25zLXRvb2xiYXIub3JkZXItYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICAgICAgLy8gUHJ6ZW1layAxLjA3LjIwMjZcblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDBweDtcblxuICAgICAgICAgICAgJiBhIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjs7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IDhweDtcblxuICAgICAgICAgICAgICAgICYucmV0dXJucyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi5wcmludCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zLm9yZGVyZWQge1xuICAgICAgICBwYWRkaW5nOiAyNXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIH1cblxuICAgIC50YWJsZSB0Zm9vdCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG5cbiAgICAgICAgdHI+dGgsXG4gICAgICAgIHRyPnRkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbC5xdHkgLml0ZW1zLXF0eSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmJsb2NrLmJsb2NrLW9yZGVyLWRldGFpbHMtdmlldyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG5cbiAgICAgICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stY29udGVudD4uYm94IHtcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcge1xuICAgICAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYztcbiAgICB9XG5cbiAgICAub3JkZXItaXRlbXMudGFibGUtd3JhcHBlciAuY29sLnByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAub3JkZXItaXRlbXMudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4uYWNjb3VudC5wcnJtYS1yZXR1cm5zLWNyZWF0ZSxcbi5hY2NvdW50LnBycm1hX3JldHVybnNfYWRkcmVzcyxcbi5hY2NvdW50LnBycm1hLXJldHVybnMtdmlldyxcbi5hY2NvdW50LnBycm1hX3JldHVybnNfZ3Vlc3QsXG4uYWNjb3VudC5wcnJtYV9yZXR1cm5zX2hpc3RvcnksXG4uYWNjb3VudC5wcnJtYS1yZXR1cm5zLW9yZGVyX2hpc3RvcnksXG4uYWNjb3VudC5wcnJtYV9yZXR1cm5zX3ByaW50LFxuLmFjY291bnQucHJybWFfcmV0dXJuc19zdWNjZXNzLFxuLmFjY291bnQucHJybWFfcmV0dXJuc192aWV3IHtcbiAgICAuY3MtZGFzaGJvYXJkX19jb2x1bW5zPi5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cblxuLnNhbGVzLWd1ZXN0LWZvcm0gLmZvcm0uZm9ybS1vcmRlcnMtc2VhcmNoIHtcbiAgICBtYXgtd2lkdGg6IDk2OHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgLmZpZWxkc2V0IHt9XG5cbiAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICAgICAgICAucHJpbWFyeT4uc3VibWl0IHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqKlxuICogSGlkZSBuYXRpdmUgYnJvd3NlcidzIHNjcm9sbGJhclxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtc2xpZGVyLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAuY3Mtc2xpZGVyLW5hdmlnYXRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNC40cmVtO1xuICAgIGhlaWdodDogNS4ycmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAxcHggMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIH1cbiAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uLS1wcmV2IHtcbiAgICBsZWZ0OiAxLjVyZW07XG4gIH1cbiAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uLS1uZXh0IHtcbiAgICByaWdodDogMS41cmVtO1xuICB9XG4gIC5jcy1zbGlkZXItbmF2aWdhdGlvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuICAuY3Mtc2xpZGVyLW5hdmlnYXRpb25bZGlzYWJsZWRdIHN2ZyB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG4gIH1cbiAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uOm5vdChbZGlzYWJsZWRdKTpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMXB4IDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgfVxuICAuY3Mtc2xpZGVyLW5hdmlnYXRpb25fX2ljb24ge1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICB9XG59XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zbGlkZXItcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC44cmVtO1xuICBtaW4taGVpZ2h0OiAzcmVtO1xufVxuLmNzLXNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbiB7XG4gIGdhcDogMDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5jcy1zbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb24gc3BhbiB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgYm9yZGVyOiAwO1xuICBpbmxpbmUtc2l6ZTogMi4ycmVtO1xuICBibG9jay1zaXplOiAwLjlyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IC05OXJlbTtcbn1cbi5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0LmN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQ6b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogVGhpcyBjb21wb25lbnRzIGlzIHNvcnQgb2YgdW5pcXVlIGJlY2F1c2UgaXQncyBpdGVtcy1wZXItcm93IGNvbmZpZ3VyYXRpb24gaXMgb25seSBhdmFpbGFibGUgZm9yIHRhYmxldCtcbiAqIFRoaXMgbWFwIGFkZHMgcG9zc2liaWxpdHkgdG8gJ2ZvcmNlJyBwcm92aWVkIGNvbHVtbnMgY29uZmlndXJhdGlvbiB1cCB0byBsYXB0b3AgcmVzb2x1dGlvbnMuXG4gKi9cbi5jcy1pbWFnZS10ZWFzZXIge1xuICAtLXNsb2dhbi1mb250LXNpemU6IDMuOHJlbTtcbiAgLS1kZXNjcmlwdGlvbi1mb250LXNpemU6IDEuNXJlbTtcbiAgLS1nYXA6IDAuOHJlbTtcbiAgLypcbiAgICogS2VlcCBDVEEgc2VwYXJhdGVkIGZyb20gdGV4dC1jb250ZW50IGZvciBhbGwgc2NlbmFyaW9zXG4gICAqIFwiIWltcG9ydGFudFwiIGFkZGVkIGR1ZSB0byBmYWxsYmFjayBmcm9tIC0tc2NoZW1lLSogd2l0aCBidXR0b24oKSBtaXhpbiB0aGF0IHJlc2V0cyBtYXJnaW5zXG4gICAqL1xuICAvKipcbiAgICogQ29udHJhc3QgT3B0aW1pemVyc1xuICAgKi9cbn1cbi5jcy1pbWFnZS10ZWFzZXI6bm90KC5jcy1jb250YWluZXItLXVzZS13aG9sZS13aWR0aCkgLmNzLWltYWdlLXRlYXNlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gIG1heC13aWR0aDogMTgwcmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgLS1jb2x1bW5zOiAxO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IHZhcigtLWdhcCk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbnMpLCBtaW5tYXgoMCwgMWZyKSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy1tb2JpbGUtMiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAtLWNvbHVtbnM6IDI7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fbGluayB7XG4gIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLWdhcCkgLyAyICsgMik7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19saW5rOmZvY3VzIHtcbiAgb3V0bGluZS1vZmZzZXQ6IDAuNHJlbTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyX19saW5rIHtcbiAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLW9mZnNldCAwLjI1cyBlYXNlO1xuICB9XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAtLSBzdHlsZWxpbnQgZG9lc24ndCBrbm93IHRoaXMgbWVkaWEgcXVlcnkgeWV0LiAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1kYXRhOiByZWR1Y2UpIHtcbiAgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNzLWltYWdlLXRlYXNlcl9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyIHtcbiAgICAtLWdhcDogMC44cmVtO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy0yIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiAyO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy0zIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiAzO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy00IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiA0O1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy01IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiA1O1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy02IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiA2O1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy03IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiA3O1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy04IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiA4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTQ6bm90KC5jcy1pbWFnZS10ZWFzZXItLWljb24pIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiAyO1xuICB9XG59XG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIge1xuICAtLWdhcDogMC44cmVtO1xuICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gMHB4KTtcbiAgLS1zaXplOiB2YXIoLS1iYXNlLXNpemUpO1xuICAvKipcbiAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgKiB3aGljaCBhcmUgYWRkZWQgdG8gZWxlbWVudHMsIGRlcGVuZGluZyBvbiB0aGUgQ0MgQ29tcG9uZW50cyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgLyogIGNvbnRhaW5lciBwYWRkaW5nIGZpeCAgKi9cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTQuMzc1ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxODByZW0gLSAwcHgpO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLXVzZS13aG9sZS1zY3JlZW46bm90KC5jcy1pbWFnZS10ZWFzZXItLWZ1bGwtd2lkdGgtc2xpZGVyKSB7XG4gICAgLS1iYXNlLXNpemU6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLXVzZS13aG9sZS1zY3JlZW46bm90KC5jcy1pbWFnZS10ZWFzZXItLWZ1bGwtd2lkdGgtc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5O1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtIDE4MHJlbSkgLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gMTgwcmVtKSAvIDIpO1xuICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAxODByZW0pIC8gMik7XG4gICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAxODByZW0pIC8gMik7XG4gICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDE4MHJlbSkgLyAyKTtcbiAgICBzY3JvbGwtbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtIDE4MHJlbSkgLyAyKTtcbiAgfVxufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgYW5kIChtaW4td2lkdGg6IDExNC4zNzVlbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGgge1xuICAgIC0tYmFzZS1zaXplOiAxODByZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciB7XG4gICAgLS1nYXA6IDAuOHJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTIge1xuICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAyIC1cbiAgICAgICAgICAgICgoMSAqIHZhcigtLWdhcCkpIC8gMilcbiAgICApO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy0zIHtcbiAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgMyAtXG4gICAgICAgICAgICAoKDIgKiB2YXIoLS1nYXApKSAvIDMpXG4gICAgKTtcbiAgfVxuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctNCB7XG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgIDQgLVxuICAgICAgICAgICAgKCgzICogdmFyKC0tZ2FwKSkgLyA0KVxuICAgICk7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTUge1xuICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICA1IC1cbiAgICAgICAgICAgICgoNCAqIHZhcigtLWdhcCkpIC8gNSlcbiAgICApO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy02IHtcbiAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgNiAtXG4gICAgICAgICAgICAoKDUgKiB2YXIoLS1nYXApKSAvIDYpXG4gICAgKTtcbiAgfVxuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctNyB7XG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgIDcgLVxuICAgICAgICAgICAgKCg2ICogdmFyKC0tZ2FwKSkgLyA3KVxuICAgICk7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTgge1xuICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICA4IC1cbiAgICAgICAgICAgICgoNyAqIHZhcigtLWdhcCkpIC8gOClcbiAgICApO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTQ6bm90KC5jcy1pbWFnZS10ZWFzZXItLWljb24pIHtcbiAgICAtLXNpemU6IGNhbGModmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoMSAqIHZhcigtLWdhcCkgLyAyKSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTQuMzEyNWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICB9XG59XG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgZ2FwOiAwO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZTogY29udGFpbjtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xufVxuQHN1cHBvcnRzIChzY3JvbGwtYmVoYXZpb3I6IHNtb290aCkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgfVxuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxufVxuLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXg6IDAgMCB2YXIoLS1zaXplKTtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZTpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikge1xuICAgIC0tZ2FwOiAwLjhyZW07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtIDBweCk7XG4gICAgLS1zaXplOiB2YXIoLS1iYXNlLXNpemUpO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGgge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgfVxuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXItbW9iaWxlOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIpLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXItbW9iaWxlOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIpIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIGdhcDogMDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXApIDA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZTogY29udGFpbjtcbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIH1cbiAgQHN1cHBvcnRzIChzY3JvbGwtYmVoYXZpb3I6IHNtb290aCkge1xuICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAgIH1cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsZXg6IDAgMCB2YXIoLS1zaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXItbW9iaWxlOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIpIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXItbW9iaWxlOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIpIC5jcy1pbWFnZS10ZWFzZXJfX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19uYXYsXG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXItbW9iaWxlOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIpIC5jcy1pbWFnZS10ZWFzZXJfX3BhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQge1xuICAtLXNjaGVtZS1jb2xvcjogI2ZmZjtcbiAgLS1zY2hlbWUtYmFja2dyb3VuZDogIzIxMjEyMTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayB7XG4gIC0tc2NoZW1lLWNvbG9yOiAjMjEyMTIxO1xuICAtLXNjaGVtZS1iYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGU6bm90KC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1pbWFnZS11cGxvYWRlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlbWUtYmFja2dyb3VuZCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtLW1vYmlsZV90ZXh0LWltYWdlIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1pbWFnZS11cGxvYWRlZCB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQge1xuICAgIG9yZGVyOiAtMTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tYXMtbGlzdC1tb2JpbGUgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0tYXMtbGlzdC1tb2JpbGUgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUge1xuICAgIG1hcmdpbjogMCAwIDAuOHJlbTtcbiAgfVxuICAuY3MtaW1hZ2UtdGVhc2VyLS1hcy1saXN0LW1vYmlsZSAuY3MtaW1hZ2UtdGVhc2VyX19wYWdpbmF0aW9uLFxuLmNzLWltYWdlLXRlYXNlci0tYXMtbGlzdC1tb2JpbGUgLmNzLWltYWdlLXRlYXNlcl9fbmF2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX2xpbmssIC5jcy1pbWFnZS10ZWFzZXJfX2xpbms6aG92ZXIsIC5jcy1pbWFnZS10ZWFzZXJfX2xpbms6dmlzaXRlZCwgLmNzLWltYWdlLXRlYXNlcl9fbGluazphY3RpdmUsIC5jcy1pbWFnZS10ZWFzZXJfX2xpbms6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gIGNvbG9yOiB2YXIoLS1zY2hlbWUtY29sb3IpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS11bmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgbWFyZ2luOiAtMnJlbSAycmVtIDA7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNjaGVtZS1iYWNrZ3JvdW5kKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMnJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlICsgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVyLCAuY3MtaW1hZ2UtdGVhc2VyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWltYWdlLXVwbG9hZGVkIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1jb250ZW50LWFsaWduLXgtMiB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLWNvbnRlbnQtYWxpZ24teC0zIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLWNvbnRlbnQtYWxpZ24teS0yIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tY29udGVudC1hbGlnbi15LTMge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50ICsgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHtcbiAgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2xvZ2FuLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgaHlwaGVuczogYXV0bztcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgbWFyZ2luOiAxZW0gMCAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBmb250LXNpemU6IHZhcigtLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19jdGEge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpob3ZlciwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpmb2N1cywgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmJlZm9yZSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMXB4O1xuICBib3R0b206IC0xcHg7XG4gIHJpZ2h0OiAtMXB4O1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpiZWZvcmUge1xuICB3aWR0aDogMy40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAgMHB4IDBweCAwO1xuICB6LWluZGV4OiAtMTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzY2NiAwJSwgIzY2NiAxMDAlKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6YWZ0ZXIge1xuICB3aWR0aDogM2VtO1xuICBtaW4td2lkdGg6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgei1pbmRleDogLTI7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6aG92ZXI6YWZ0ZXIge1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGEsIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGEgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkICoge1xuICBjb2xvcjogI2ZmZjtcbiAgZmlsbDogI2ZmZjtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gIGNvbG9yOiAjZmZmO1xuICBmaWxsOiAjZmZmO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YVtkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjY1O1xuICBjdXJzb3I6IGF1dG87XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6OmJlZm9yZSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6OmFmdGVyIHtcbiAgY29udGVudDogbm9uZTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCAqIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZpbGw6ICMwMDAwMDA7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzY2NjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gIGNvbG9yOiAjZmZmO1xuICBmaWxsOiAjZmZmO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGFbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC42NTtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1zcGFuIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDMuNzVlbTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4ge1xuICBtYXJnaW4tdG9wOiAwO1xuICB6LWluZGV4OiAxO1xuICBmb250LXdlaWdodDogNzAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMy43NWVtO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1pY29uIHtcbiAgbWF4LXdpZHRoOiAxZW07XG4gIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgei1pbmRleDogMjtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICByaWdodDogMC43NWVtO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtaWNvbiB7XG4gIG1heC13aWR0aDogMWVtO1xuICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gIHotaW5kZXg6IDI7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcmlnaHQ6IDAuNzVlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXJfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgei1pbmRleDogMTtcbiAgICBtYXJnaW46IDEuMmVtIDAgMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1pY29uIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS40cmVtO1xuICB9XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19vdmVybGF5LCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19vdmVybGF5LCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX29wdGltaXplci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX292ZXJsYXksIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTEuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMS5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0xIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMS5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0yIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMjEyMTIxIDAlLCByZ2JhKDMzLCAzMywgMzMsIDApIDg1JSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTEuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMS5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0zIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMjEyMTIxIDAlLCByZ2JhKDMzLCAzMywgMzMsIDApIDg1JSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTEuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMi5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0xIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzIxMjEyMSAwJSwgcmdiYSgzMywgMzMsIDMzLCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0yLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTEge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmZmIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDg1JSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0yLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMi5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0yIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZmZmIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDg1JSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0yLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzIxMjEyMSAwJSwgcmdiYSgzMywgMzMsIDMzLCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0yLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMy5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0xIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMy5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0xIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsICNmZmYgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODUlKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTMuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtOTBkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMy5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0yIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC05MGRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMy5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0zIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC00NWRlZywgIzIxMjEyMSAwJSwgcmdiYSgzMywgMzMsIDMzLCAwKSA4NSUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0zLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTMge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjZmZmIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDg1JSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19pbWFnZS0tbWlycm9yIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC0tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAyZW07XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy01IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTEwIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMTUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMjAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0yNSB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0zMCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTM1IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTQwIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNDUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNTAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy01NSB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy02MCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTY1IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTcwIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNzUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctODAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy04NSB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy05MCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTk1IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTEwMCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHdoaXRlO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDApO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuMDUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTEwIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjEpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTE1IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjE1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0yMCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC4yKTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0yNSB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC4yNSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMzAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuMyk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMzUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuMzUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTQwIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjQpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTQ1IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjQ1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy01MCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC41KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy01NSB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC41NSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNjAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuNik7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNjUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuNjUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTcwIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjcpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTc1IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjc1KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy04MCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC44KTtcbn1cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy04NSB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC44NSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctOTAge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuOSk7XG59XG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctOTUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuOTUpO1xufVxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTEwMCB7XG4gIHRleHQtc2hhZG93OiAwIDAgMi41cmVtICMyMTIxMjE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiB7XG4gICAgLS1nYXA6IDAuOHJlbTtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gMHB4KTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbi5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24uY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkgYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgZ2FwOiAwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgfVxuICBAc3VwcG9ydHMgKHNjcm9sbC1iZWhhdmlvcjogc21vb3RoKSB7XG4gICAgLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gICAgfVxuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbGV4OiAwIDAgdmFyKC0tc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZTpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIHtcbiAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICkgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIHtcbiAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICkgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24ge1xuICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDMgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgMiAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgKSAvIDMpXG4gICAgKSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiB7XG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gNSAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICA0ICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICApIC8gNSlcbiAgICApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkgYW5kIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbi5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fcGFnaW5hdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAtLXNsb2dhbi1mb250LXNpemU6IDEuNnJlbTtcbn1cbi5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fY3RhIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS11bmRlciB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmc6IDFyZW07XG59XG4uY3MtaW1hZ2UtdGVhc2VyLS1pY29uIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tY3RhLW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0tbW9zYWljIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy0tbW9zYWljLXNjZW5hcmlvLTEge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDJmcikgbWlubWF4KDAsIDFmcik7XG4gIH1cbiAgLmNzLWltYWdlLXRlYXNlci0tbW9zYWljIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy0tbW9zYWljLXNjZW5hcmlvLTIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDJmcik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gIH1cbn1cbi5jcy1pbWFnZS10ZWFzZXItLWluc3RhZ3JhbS1mZWVkIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3MtaW1hZ2UtdGVhc2VyLS1pbnN0YWdyYW0tZmVlZCAuY3MtaW1hZ2UtdGVhc2VyX19pbWFnZSB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG5cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlciB7XG4gIG1hcmdpbjogMCAwIDNyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIge1xuICAgIG1hcmdpbjogMCAwIDRyZW07XG4gIH1cbn1cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci0tc2tpcC1zcGFjaW5nIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY3MtY29udGFpbmVyLS1ncmlkLXRlYXNlciB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLXdpbmRvdy13aWR0aCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGggLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci1zbGlkZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59IiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ltYWdlLXRlYXNlci9mdW5jdGlvbnMvZ2V0LWdyYWRpZW50LWFuZ2xlJztcblxuQG1peGluIHRlYXNlci1ncmFkaWVudC1vdmVybGF5KFxuICAgICR4OiAxLFxuICAgICR5OiAxLFxuICAgICRjb2xvcjogJGNvbG9yX2JhY2tncm91bmQtNzAwLFxuICAgICRncmFkaWVudC1yYW5nZTogODUlXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIGdldC1ncmFkaWVudC1hbmdsZSgkeCwgJHkpLFxuICAgICAgICAkY29sb3IgMCUsXG4gICAgICAgIHJnYmEoJGNvbG9yLCAwKSAkZ3JhZGllbnQtcmFuZ2VcbiAgICApO1xufVxuIiwiQG1peGluIG9wdGltaXplci10ZXh0LXNoYWRvdyhcbiAgICAkY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCxcbiAgICAkdGV4dC1zaGFkb3ctb2Zmc2V0OiAwIDAgMjVweCxcbiAgICAkc3RlcDogNVxuKSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCBjZWlsKDEwMCAvICRzdGVwKSB7XG4gICAgICAgICR2YWx1ZTogJGkgKiAkc3RlcDtcblxuICAgICAgICAmLSN7JHZhbHVlfSB7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogI3skdGV4dC1zaGFkb3ctb2Zmc2V0fSByZ2JhKCRjb2xvciwgKCR2YWx1ZSAvIDEwMCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9taXhpbic7XG5cbi8qKlxuICogSXQgaXMgaW50ZW5kZWQsIHRvIG5vdCB1c2UgdGhlIHNhbWUgY29uZmlnIHBhdHRlcm4gKGpzL2Nvbmx1bW5zQ29uZmlnKSBhcyBmb3Igb3RoZXIgc2xpZGVyLWJhc2VkIGNvbXBvbmV0cyxcbiAqIGJlY2F1c2UgUHJvZHVjdHMgQ2Fyb3VzZWxzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGNvbmZpZyBhcyBwcm9kdWN0IGdyaWQgZm9yIGNvbnNpc3RlbmN5LlxuICogSWYgY3VzdG9tIGNvbHVtbnMgY29uZmlnIGlzIG5lZWRlZCwgcmVkZWZpbmUgaXQuXG4gKi9cbiRwcm9kdWN0cy1jYXJvdXNlbF9pdGVtLXBlci1yb3c6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VTdWl0ZV9Db250ZW50Q29uc3RydWN0b3IsXG4gICAgY29sdW1ucyxcbiAgICBvbmUtY29sdW1uXG4pICFkZWZhdWx0O1xuXG4kcHJvZHVjdHMtY2Fyb3VzZWxfbW9iaWxlLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJHByb2R1Y3RzLWNhcm91c2VsX2Rlc2t0b3AtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdHMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlOiAwcHggIWRlZmF1bHQ7IC8vIGl0IHdpbGwgYmUgdGhpcyB2YWx1ZSArIHBhZ2UtZ3V0dGVyXG5cbi4jeyRuc31wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuXG4gICAgQGluY2x1ZGUgc2xpZGVyKFxuICAgICAgICAkY29sdW1ucy1jb25maWc6ICRwcm9kdWN0cy1jYXJvdXNlbF9pdGVtLXBlci1yb3csXG4gICAgICAgICRtLWdhcDogJHByb2R1Y3RzLWNhcm91c2VsX21vYmlsZS1nYXAsXG4gICAgICAgICRkLWdhcDogJHByb2R1Y3RzLWNhcm91c2VsX2Rlc2t0b3AtZ2FwLFxuICAgICAgICAkbmV4dC12aXNpYmxlOiAkcHJvZHVjdHMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlLFxuICAgICAgICAkcm9vdDogJHJvb3RcbiAgICApO1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5cbi8qKlxuICogR2FwIGJldHdlZW4gY29sdW1ucyAoYWxsIENTUyB1bml0cyBhbGxvd2VkKSBbRXhhbXBsZTogMS41cmVtXVxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY29sdW1uLWdhcFxuICovXG4kcGFyYWdyYXBoX2NvbHVtbi1nYXA6IDZyZW0gIWRlZmF1bHQ7XG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2NvbHVtbi1ydWxlXG4gKi9cbiRwYXJhZ3JhcGhfY29sdW1uLXJ1bGU6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfXBhcmFncmFwaCB7XG4gICAgY29sdW1uLWdhcDogJHBhcmFncmFwaF9jb2x1bW4tZ2FwO1xuICAgIGNvbHVtbi1ydWxlOiAkcGFyYWdyYXBoX2NvbHVtbi1ydWxlO1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAmLS1jb2xzLTIsXG4gICAgICAgICYtLWNvbHMtMyxcbiAgICAgICAgJi0tY29scy00IHtcbiAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMjtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgJi0tY29scy0zLFxuICAgICAgICAmLS1jb2xzLTQge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiAzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICYtLWNvbHMtNCB7XG4gICAgICAgICAgICBjb2x1bW4tY291bnQ6IDQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1tb2RlLW9wdGltYWwge1xuICAgICAgICBtYXgtd2lkdGg6IDQwZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIGNvbHVtbi1jb3VudDogaW5pdGlhbDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcblxuJHNlcGFyYXRvcl9jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc2VwYXJhdG9yX3N0eWxlOiAxcHggc29saWQgJHNlcGFyYXRvcl9jb2xvciAhZGVmYXVsdDtcblxuLiN7JG5zfXNlcGFyYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItdG9wOiAkc2VwYXJhdG9yX3N0eWxlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRjYWxlbmRhcl9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJGNhbGVuZGFyX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGNhbGVuZGFyX2hlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9oZWFkZXItYXJyb3ctY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfd2Vla2RheS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2RhdGUtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9kYXRlLWRpc2FibGVkLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfZGF0ZS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi51aS1kYXRlcGlja2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDk5OTk5OSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogJGNhbGVuZGFyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkY2FsZW5kYXJfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMjVyZW07XG4gICAgYm94LXNoYWRvdzogJGNhbGVuZGFyX2JveC1zaGFkb3c7XG4gICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2JhY2tncm91bmQtY29sb3I7XG59XG5cbi8vIEhFQURFUlxuLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2hlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHBhZGRpbmc6IDEuMnJlbSAycmVtO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRjYWxlbmRhcl9ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkY2FsZW5kYXJfYm9yZGVyLXJhZGl1cztcbn1cblxuLnVpLWRhdGVwaWNrZXItcHJldixcbi51aS1kYXRlcGlja2VyLW5leHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJyZW07XG4gICAgd2lkdGg6IDEuOGVtO1xuICAgIGhlaWdodDogMS44ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAwLjJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cblxuLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gICAgbGVmdDogMS41cmVtO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiAycmVtO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAtMS4ycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjhyZW0gc29saWQgJGNhbGVuZGFyX2hlYWRlci1hcnJvdy1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjZyZW0gc29saWQgJGNhbGVuZGFyX2hlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gICAgcmlnaHQ6IDEuNXJlbTtcblxuICAgIHNwYW4ge1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMS4ycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDAuOHJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWFycm93LWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDAuNnJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC42cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktZGF0ZXBpY2tlci10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCAxLjVyZW07XG59XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG5zZWxlY3QudWktZGF0ZXBpY2tlci1tb250aC15ZWFyIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnVpLWRhdGVwaWNrZXItbW9udGgge1xuICAgIHdpZHRoOiA0NyU7XG4gICAgbWFyZ2luLXJpZ2h0OiA2JTtcbn1cblxuLnVpLWRhdGVwaWNrZXIteWVhciB7XG4gICAgd2lkdGg6IDQ3JTtcbn1cblxuLnVpLWRhdGVwaWNrZXItdGFibGUge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLy8gQ2FsZW5kYXJcbi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbjogMXJlbSAxLjVyZW0gMS41cmVtO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB3aWR0aDogMjNyZW07XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6ICRjYWxlbmRhcl93ZWVrZGF5LWNvbG9yO1xuICAgIH1cblxuICAgIC51aS1kYXRlcGlja2VyLXdlZWstY29sIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHRkIGEsXG4gICAgdGggc3BhbixcbiAgICB0ZCBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICB0ZCBhLFxuICAgIHRkIHNwYW4ge1xuICAgICAgICBjb2xvcjogJGNhbGVuZGFyX2RhdGUtY29sb3I7XG4gICAgfVxuXG4gICAgLnVpLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWNvbG9yO1xuICAgIH1cblxuICAgIC51aS1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRjYWxlbmRhcl9kYXRlLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVpLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkY2FsZW5kYXJfZGF0ZS1zZWxlY3RlZC1jb2xvcjtcbiAgICB9XG59XG5cbi8vIEJ1dHRvbnNcbi51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgYm9yZGVyLXRvcDogJGNvbG9yX2JvcmRlci01MDAgMXB4IHNvbGlkO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi8vIFJUTFxuLnVpLWRhdGVwaWNrZXItcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXYge1xuICAgIHJpZ2h0OiAycHg7XG4gICAgbGVmdDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQge1xuICAgIGxlZnQ6IDJweDtcbiAgICByaWdodDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXIge1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgbGVmdDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6aG92ZXIge1xuICAgIGxlZnQ6IDFweDtcbiAgICByaWdodDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuICAgIGNsZWFyOiByaWdodDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xufVxuXG4vLyBUaW1lcGlja2VyXG4udWktdGltZXBpY2tlci1kaXYge1xuICAgIHBhZGRpbmc6IDFyZW0gMCAwLjVyZW0gMDtcblxuICAgIC51aS13aWRnZXQtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICAgIH1cblxuICAgIGRsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICBkdCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0yLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAudWlfdHBpY2tlcl90aW1lX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0yLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBkZCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDYuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRkIHtcbiAgICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgfVxufVxuXG4udWktdHBpY2tlci1ncmlkLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gU2xpZGVyXG4udWktc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnVpLXNsaWRlci1oYW5kbGUge1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICRjYWxlbmRhcl9iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICB9XG59XG5cbi8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBmcm9tIGRhdGVwaWNrZXIgMS41LjMgKi9cbi51aS1kYXRlcGlja2VyLWNvdmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbXVzdCBoYXZlKi9cbiAgICB6LWluZGV4OiAtMTsgLyptdXN0IGhhdmUqL1xuICAgIGZpbHRlcjogbWFzaygpOyAvKm11c3QgaGF2ZSovXG4gICAgdG9wOiAtNHB4OyAvKm11c3QgaGF2ZSovXG4gICAgbGVmdDogLTRweDsgLyptdXN0IGhhdmUqL1xuICAgIHdpZHRoOiAyMDBweDsgLyptdXN0IGhhdmUqL1xuICAgIGhlaWdodDogMjAwcHg7IC8qbXVzdCBoYXZlKi9cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuXG4kY2FwdGNoYV9idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kY2FwdGNoYV9idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLiN7JG5zfWNhcHRjaGEge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9faW1hZ2UtY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gICAgICAgIC4jeyRuc31kYXNoYm9hcmQgJiB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGNhcHRjaGFfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjYXB0Y2hhX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIC4jeyRuc31kYXNoYm9hcmQgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRjYXB0Y2hhX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY2FwdGNoYV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19ub3RlIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICAuI3skbnN9ZGFzaGJvYXJkICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAncGFnZXMvbGF5b3V0LzJjb2x1bW5zLWxlZnQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiRkYXNoYm9hcmQtYnV0dG9uX3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGRhc2hib2FyZC1idXR0b25fc2Vjb25kYXJ5LXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfYnV0dG9uX2Zvcm1zLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZC1idXR0b25fc21hbGwtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbiRkYXNoYm9hcmRfbWFpbi1zZXBhcmF0b3ItYXBwbHk6IGZhbHNlICFkZWZhdWx0O1xuJGRhc2hib2FyZF9zaWRlYmFyLW1haW4tc3BhY2U6IDMuNXJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfYm90dG9tLWJvcmRlci10b3A6IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtbGlua3Mtc2VwYXJhdG9yOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2xvZ2luLXNlY3Rpb25zLXNlcGFyYXRvcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX2hlYWRsaW5lLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oZWFkbGluZS1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oZWFkbGluZS1wYWRkaW5nLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMyAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtbGluay1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX2JveC10aXRsZS1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfYm94LXRpdGxlLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JveC10aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX3RleHQtZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF90ZXh0LWxpbmUtaGVpZ2h0OiAyLjVyZW0gIWRlZmF1bHQ7XG5cbiRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG5cbi8vIEZvciBzaG9wcyB3aXRoIGRhcmtlciBiYWNrZ3JvdW5kIGVsZW1lbnRzIGluIHVzZXIgYXJlYSBhcmUgcGxhY2VkIGluIHNlcGFyYXRlIGJveGVzXG5cbi8vIFZhbHVlcyBzcGVjaWZpYyBmb3Igc2hvcHMgd2l0aCBiYWNrZ3JvdW5kXG4kZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZDogZmFsc2UgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnM6IGZhbHNlICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oaWRlLXRpdGxlcy1zZXBhcmF0b3JzOiBmYWxzZSAhZGVmYXVsdDtcbi8vIFNldCB2YWx1ZSBpZiAkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCBpcyBzZXQgdG8gdHJ1ZVxuJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nOiAwICFkZWZhdWx0O1xuLy8gRm9yIHNob3BzIHdoaXRlIHdoaXRlIGJhY2tncm91bmQgaXQgaXMgYWxzbyBuZWVkZWQgYXMgaXQgaXMgcGFydCBvZiBzcGFjaW5nIHN5c3RlbS5cbi8vIEZvciBzaG9wcyB3aXRoIGRhcmtlciBiYWNrZ3JvdW5kIHZhbHVlIGhlcmUgY2FuIGJlIHNtYWxsZXIgb2YgaGlnaGVyXG4kZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vIE9yZGVyIHRhYmxlXG4kZGFzaGJvYXJkX3ByaWNlLWZvbnQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWRhc2hib2FyZCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSB0d28tY29sdW1ucy1sZWZ0KCRkYXNoYm9hcmRfbWFpbi1zZXBhcmF0b3ItYXBwbHkpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJl9fY29sdW1ucyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAzcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zaWRlYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwICRkYXNoYm9hcmRfc2lkZWJhci1tYWluLXNwYWNlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gR3Vlc3Qgd2lzaGxpc3Qgd2l0aG91dCBzaWRlYmFyXG4gICAgICAgIC53aXNobGlzdC1pbmRleC1pbmRleC5wYWdlLWxheW91dC0xY29sdW1uICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190b3Age1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IGZhbHNlKSB7XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDNyZW07XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMXJlbTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYWdlLXRpdGxlIHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnZS10aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDFyZW0gMDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm1lc3NhZ2UtZXJyb3IsXG4gICAgLm1lc3NhZ2Utc3VjY2VzcyxcbiAgICAubWVzc2FnZS1ub3RpY2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ib3R0b20ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkZGFzaGJvYXJkX2JvdHRvbS1ib3JkZXItdG9wO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdCB7XG4gICAgICAgICYtbGluZSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1ndWVzdC1jb2RlIHtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAmX19ib3R0b20td2lzaGxpc3Qge1xuICAgICAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZChuICsgNCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dpbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtc2VjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtICgjeyRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlc30gLyAyKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGRhc2hib2FyZF9sb2dpbi1zZWN0aW9ucy1zZXBhcmF0b3I7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb250YWN0LXBhZ2Uge1xuICAgICAgICAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhY3QtZm9ybSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZW5lcmFsIFVzZXIgQXJlYSBzdHlsZXNcblxuICAgIC5maWVsZHNldCxcbiAgICAuZm9ybSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDE1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDQ1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmZpZWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAubGltaXRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgLmNob2ljZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9saW5rcy1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtcHJlZml4IHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMnJlbTtcbiAgICB9XG5cbiAgICAucHJpbWFyeSB7XG4gICAgICAgID4gYnV0dG9uLFxuICAgICAgICAuY3JlYXRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgLndpc2hsaXN0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGJ1dHRvbi5hY3Rpb24udXBkYXRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVtaW5kLFxuICAgIC5iYWNrIHtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMC43cmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLmNvdW50ZXIge1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcmVtKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMS41cmVtIDAgMi41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMS41cmVtIDAgNHJlbTtcblxuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLXRpdGxlLFxuICAgIC5sZWdlbmQsXG4gICAgLm9yZGVyLXRpdGxlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGRhc2hib2FyZF9oZWFkbGluZS1ib3JkZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXNoYm9hcmRfaGVhZGxpbmUtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRkYXNoYm9hcmRfaGVhZGxpbmUtcGFkZGluZy1ib3R0b207XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfaGVhZGxpbmUtZm9udC1zaXplO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS10aXRsZXMtc2VwYXJhdG9ycyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuYmxvY2stdGl0bGUgYSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfaGVhZGxpbmUtbGluay1mb250LXNpemU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAuYm94LXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2JveC10aXRsZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2JveC10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRkYXNoYm9hcmRfYm94LXRpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgIH1cblxuICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1hcmdpbjogMnJlbSAwIDA7XG5cbiAgICAgICAgLnNhbGVzLW9yZGVyLWhpc3RvcnkgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5uby1kaXNwbGF5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stbmV3LWN1c3RvbWVyIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay1yZXdhcmQtaGlzdG9yeSB7XG4gICAgICAgIC4jeyRuc310b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG90aGVyIHdheSB0byByZW1vdmUgdG9wIHRvb2xiYXIgZWxlbWVudHNcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjdyZW0gMCAycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc310b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gtYWN0aW9ucyxcbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIGEgKyBhIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1saW5rcy1zZXBhcmF0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGFibGVzIG5vdCBwbGFjZWQgaW5zaWRlIGJveCBpbiBtYXJrdXBcbiAgICAudGFibGUtd3JhcHBlcixcbiAgICAub3JkZXJzLWhpc3RvcnksXG4gICAgLmZvcm0td2lzaGxpc3QtaXRlbXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC50b29sYmFyLFxuICAgICAgICAmICsgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAmLm9yZGVyLWl0ZW1zICsgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC50b29sYmFyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3JkZXJzLWhpc3RvcnksXG4gICAgLmZvcm0td2lzaGxpc3QtaXRlbXMsXG4gICAgLnJldmlld3MsXG4gICAgLnRyYW5zYWN0aW9ucyB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0td2lzaGxpc3QtaXRlbXMge1xuICAgICAgICAuYWN0aW9ucy10b29sYmFyIC5wcmltYXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgLmFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1wd2Fub3RpZmljYXRpb25zLW1hbmFnZSB7XG4gICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZCB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLiN7JG5zfXRvb2xiYXJfX2l0ZW0tLWFtb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnRvb2xiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlcixcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYW1vdW50IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICsgLiN7JG5zfXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbGltaXRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnRvb2xiYXItYW1vdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxpbWl0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi53aXNobGlzdC10b29sYmFyIHtcbiAgICAgICAgICAgIGJyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMtdG9vbGJhciA+IC5zZWNvbmRhcnkgLmFjdGlvbi5iYWNrLFxuICAgIC5zZWNvbmRhcnkgLmFjdGlvbi5lZGl0LWVtYWlsLXByZWZlcmVuY2VzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAucmV2aWV3LWN1c3RvbWVyLXZpZXcgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gsXG4gICAgLmFkZHJlc3NlcyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveC1jb250ZW50LFxuICAgIC5hZGRyZXNzZXMgLml0ZW0ge1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF90ZXh0LWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGRhc2hib2FyZF90ZXh0LWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogJGRhc2hib2FyZF90ZXh0LWxpbmUtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC50b29sdGlwLndyYXBwZXIge1xuICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIC5jaG9pY2UucGVyc2lzdGVudCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgLy8gT3JkZXIgc2N0aW9uIGFuZCBwYWdlXG4gICAgLnRhYmxlLW9yZGVyLWl0ZW1zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAuI3skbnN9dGFibGVfX2NvbDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5pdGVtcy1xdHksXG4gICAgICAgICAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGRhc2hib2FyZF9wcmljZS1mb250LWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9Y2FydC1pdGVtX19vcHRpb25zLWxhYmVsIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfXRhYmxlX19jb2wuc3VidG90YWwge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pdGVtcy1xdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIC5zYWxlcy1vcmRlci12aWV3ICYsXG4gICAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlICYsXG4gICAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAub3JkZXIge1xuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgJixcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlICYsXG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkLWJ1dHRvbl9zbWFsbC1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByaW50IHtcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci12aWV3ICYsXG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAmLFxuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50ICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3NlY29uZGFyeS10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmQtYnV0dG9uX3NtYWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fc2Vjb25kYXJ5LXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2aWV3cyBzZWN0aW9uIGFuZCBwYWdlXG4gICAgLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIHtcbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYXRpbmctcmVzdWx0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhdGluZy1zdW1tYXJ5Lml0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAuY3VzdG9tZXItcmV2aWV3IHtcbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkZm9udC1zaXplX2hlYWRsaW5lLTQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJldmlldy10aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkZm9udC1zaXplX2hlYWRsaW5lLTQpO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnZpZXcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAgICAgLnJldmlldy50aXRsZSxcbiAgICAgICAgICAgIC5yYXRpbmdzLXN1bW1hcnksXG4gICAgICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbWVkaWEge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyOC41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXZpZXctZGV0YWlscyAuY3VzdG9tZXItcmV2aWV3LXJhdGluZyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJldmlldy1kZXRhaWxzIC5yZXZpZXctdGl0bGUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LWRldGFpbHMgLnJldmlldy1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJhdGluZy1zdW1tYXJ5LFxuICAgICAgICAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJldmlld3MtYWN0aW9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZHJlc3MgZm9ybXMgc2VjdGlvbnNcbiAgICAuZm9ybS5jcmVhdGUuYWNjb3VudCxcbiAgICAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gICAgLmZvcm0tZWRpdC1hY2NvdW50LFxuICAgIC5mb3JtLnBhc3N3b3JkLnJlc2V0LFxuICAgIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAgIC5mb3JtLnBhc3N3b3JkLmZvcmdldCxcbiAgICAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mdWxsbmFtZSB7XG4gICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluIHRoZW1lLWZyb250ZW5kLWJsYW5rL01hZ2VudG9fQ3VzdG9tZXIvd2ViL2Nzcy9zb3VyY2UvX21vZHVsZS5sZXNzIHRoaXMgbGFiZWwgaXMgdmlzdWFsbHkgaGlkZGVuLFxuICAgICAgICAgICAgLy8gYW5kIGZpcnN0IGxhYmVsIHdpZHRoIG11c3QgYmUgMXB4IGhlcmVcbiAgICAgICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLnByaW1hcnkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2J1dHRvbl9mb3Jtcy1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuYmFjayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQtZnVsbG5hbWUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLWVkaXQtYWNjb3VudCxcbiAgICAuZm9ybS1hZGRyZXNzLWVkaXQge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZGRyZXNzZXMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3Qge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogMFxuICAgICAgICAgICAgICAgICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZ1xuICAgICAgICAgICAgICAgICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gtYmlsbGluZy1hZGRyZXNzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIHtcbiAgICAgICAgLmNvbC5zdGF0ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLmRlbGV0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnLCAnPGxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi5lZGl0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcsICc8bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmV3c2xldHRlciBzZWN0aW9uXG4gICAgLmZvcm0tbmV3c2xldHRlci1tYW5hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMub3JkZXJlZCB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vcmRlci1saW5rcyB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IHRydWUpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1ndWVzdCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWd1ZXN0LWNvcHkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1ndWVzdC1jb3B5LWljb24ge1xuICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICBmaWxsOiAkZGFzaGJvYXJkX3RleHQtY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWNyZWF0ZS1hY2NvdW50LXBhZ2UsXG4gICAgJi0tbG9naW4tcGFnZSxcbiAgICAmLS1zdWNjZXNzLXBhZ2UsXG4gICAgJi0tbG9nb3V0LXBhZ2UsXG4gICAgJi0tY29udGFjdC1wYWdlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1teS1hY2NvdW50LXBhZ2Uge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlcjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuYWN0aW9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbn1cblxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5ibG9jayBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmJsb2NrIC5ib3gtYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uYWNjb3VudC5wYWdlLXByaW50IHtcbiAgICAuaXRlbXMtcXR5IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRsYXlvdXQtMmNvbC1sZWZ0X2NvbHVtbnMtcGVyLXJvdzogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZVN1aXRlX0NvbnRlbnRDb25zdHJ1Y3RvcixcbiAgICBjb2x1bW5zLFxuICAgIG9uZS1jb2x1bW5cbikgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF93YXMtc2VwYXJhdG9yLWNhbGxlZC15ZXQ6IGZhbHNlICFkZWZhdWx0O1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0OiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci1kZXNrdG9wOiAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLWRlc2t0b3A6IDIgKlxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci10YWJsZXQgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1zZXBhcmF0b3ItYXBwbHk6IHRydWUgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1zZXBhcmF0b3ItY29sb3I6ICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9sYXlvdXQtYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWRlZmF1bHQ7XG5cbiRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItcGFkZGluZy10YWJsZXQ6IDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0IDAgMCAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItcGFkZGluZy1kZXNrdG9wOiAwXG4gICAgJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLWRlc2t0b3AgMCAwICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1ib3JkZXItcmlnaHQ6IDJweCBzb2xpZFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLXNlcGFyYXRvci1jb2xvciAhZGVmYXVsdDtcblxuJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZzogMS41cmVtICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXRvcC1zcGFjaW5nIDAgMFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci10YWJsZXQgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctdGFibGV0OiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXRvcC1zcGFjaW5nIDAgMFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci10YWJsZXQgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctZGVza3RvcDogJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZyAwIDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItZGVza3RvcCAhZGVmYXVsdDtcblxuQG1peGluIHR3by1jb2x1bW5zLWxlZnQoJGFwcGx5LWJvcmRlcjogdHJ1ZSkge1xuICAgICZfX2NvbHVtbnMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRsYXlvdXQtMmNvbC1sZWZ0X2xheW91dC1hbGlnbi1pdGVtcztcblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZXMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19zaWRlYmFyIHtcbiAgICAgICAgb3JkZXI6IDE7XG5cbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRpdGVtc1BlclJvdyBpbiAkbGF5b3V0LTJjb2wtbGVmdF9jb2x1bW5zLXBlci1yb3cge1xuICAgICAgICAgICAgQGlmICRicmVha3BvaW50ICE9IHBob25lIGFuZCAkYnJlYWtwb2ludCAhPSBwaG9uZUxnIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvICN7JGl0ZW1zUGVyUm93fSk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRpdGVtc1BlclJvdyA+XG4gICAgICAgICAgICAgICAgICAgICAgICAxIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgJGxheW91dC0yY29sLWxlZnRfd2FzLXNlcGFyYXRvci1jYWxsZWQteWV0ID09XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItYm9yZGVyLXJpZ2h0ICE9XG4gICAgICAgICAgICAgICAgICAgICAgICBub25lXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkYXBwbHktYm9yZGVyID09IHRydWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1ib3JkZXItcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICRsYXlvdXQtMmNvbC1sZWZ0X3dhcy1zZXBhcmF0b3ItY2FsbGVkLXlldDogdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAndGFibGV0JyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctdGFibGV0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09ICdsYXB0b3AnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGxheW91dC0yY29sLWxlZnRfY29sdW1ucy1wZXItcm93IHtcbiAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBwaG9uZSBhbmQgJGJyZWFrcG9pbnQgIT0gcGhvbmVMZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvICN7JGl0ZW1zUGVyUm93fSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAndGFibGV0JyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctdGFibGV0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09ICdsYXB0b3AnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsYXlvdXQtMmNvbC1sZWZ0X21haW4tcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLXBhZ2UtY2F0ZWdvcnlfX21haW4tLXNlYXJjaC1uby1yZXN1bHQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGZvcm1fYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGZvcm1fYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31mb3JtIHtcbiAgICAmLFxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLmZvcm0ge1xuICAgICYsXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmZpZWxkIHtcbiAgICAgICAgKyAuZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRwYXNzd29yZC1zdHJlbmd0aF9pY29uLWhlaWdodDogMC43cmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbiRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoLXNtYWxsLW1vYmlsZTogMS41cmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0LXNtYWxsLW1vYmlsZTogMC41cmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlLXNtYWxsLW1vYmlsZTogMC4ycmVtICFkZWZhdWx0O1xuXG4kcGFzc3dvcmQtc3RyZW5ndGhfYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbCAhZGVmYXVsdDtcbiRwYXNzd29yZC1zdHJlbmd0aF9ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kcGFzc3dvcmQtc3RyZW5ndGhfaGVpZ2h0OiAzLjJyZW0gIWRlZmF1bHQ7XG5cbiRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRoOiAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aCArXG4gICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlO1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGgtc21hbGwtbW9iaWxlOiAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aC1zbWFsbC1tb2JpbGUgK1xuICAgICRwYXNzd29yZC1zdHJlbmd0aF9pY29ucy1zcGFjZS1zbWFsbC1tb2JpbGU7XG5cbi8vIE9yaWdpbmFsIE1hZ2VudG8gY2xhc3MgaXMgbGVmdCBmb3IgdGhpcyBjb21wb25lbnRcbi8vXG4ucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYXNzd29yZC1zdHJlbmd0aF9iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlcjogJHBhc3N3b3JkLXN0cmVuZ3RoX2JvcmRlcjtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGhlaWdodDogJHBhc3N3b3JkLXN0cmVuZ3RoX2hlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHBhc3N3b3JkLXN0cmVuZ3RoX2hlaWdodDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24td2lkdGhcbiAgICAgICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA1MCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSAxcmVtKSxcbiAgICAgICAgY2FsYygxMDAlIC0gKCN7JHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGh9ICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiAyICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiAzICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiA0ICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiA1ICsgMXJlbSkpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyk7XG5cbiAgICAucGFzc3dvcmQtd2VhayAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItd2Vhay5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItd2Vhay5zdmcnKTtcbiAgICB9XG5cbiAgICAucGFzc3dvcmQtbWVkaXVtICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLW1lZGl1bS5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItbWVkaXVtLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1tZWRpdW0uc3ZnJyk7XG4gICAgfVxuXG4gICAgLnBhc3N3b3JkLXN0cm9uZyAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnJyk7XG4gICAgfVxuXG4gICAgLnBhc3N3b3JkLXZlcnktc3Ryb25nICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnJyk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoLXNtYWxsLW1vYmlsZVxuICAgICAgICAgICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0LXNtYWxsLW1vYmlsZTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSAxcmVtKSxcbiAgICAgICAgICAgIGNhbGMoXG4gICAgICAgICAgICAgICAgMTAwJSAtXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICN7JHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGgtc21hbGwtbW9iaWxlfSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kcmV2aWV3X2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHJldmlld190aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHJldmlld190aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHJldmlld19hdXRob3ItY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRyZXZpZXdfY29udGVudC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld19kYXRlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kcmV2aWV3X21ldGEtaXRlbS1mb250LXNpemU6IDAuOWVtICFkZWZhdWx0O1xuJHJldmlld19tZXRhLWl0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcmV2aWV3X21ldGEtaXRlbS1wYWRkaW5nOiAwIDFyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3X2hpZGUtY29tcG91bmQtcmF0aW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31yZXZpZXcge1xuICAgIGZvbnQtc2l6ZTogJHJldmlld19mb250LXNpemU7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcmV2aWV3X3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDAgMCAwLjdyZW07XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3X3RpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgICZfX3JhdGluZyxcbiAgICAmX19yYXRpbmdzIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19jb21wb3VuZC1yYXRpbmcge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRyZXZpZXdfaGlkZS1jb21wb3VuZC1yYXRpbmdzKSB7XG4gICAgICAgICZfX2NvbXBvdW5kLXJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmIC5jcy1zdGFyLXJhdGluZ19fbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vdmVyYWxsLXJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWV0YSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld19tZXRhLWl0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgICYtLXZhcmlhbnQtc3VwcG9ydCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21ldGEtaXRlbSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdfbWV0YS1pdGVtLXBhZGRpbmc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGJvcmRlci1yaWdodDogJHJldmlld19tZXRhLWl0ZW0tYm9yZGVyO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2F1dGhvciB7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3X2F1dGhvci1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19kYXRlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3X2RhdGUtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgcGFkZGluZzogJHJldmlld19tZXRhLWl0ZW0tcGFkZGluZztcblxuICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc3dhdGNoLW9wdGlvbiB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJHJldmlld19jb250ZW50LWNvbG9yO1xuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmc6IDIuNXJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfZGVza3RvcC13aWR0aDogMzVyZW0gIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kcmV2aWV3cy1zdW1tYXJ5X2JhcnMtZmxleC1ncm93OiAxICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9iYXJzLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9iYXJzLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2Jhci1tYXgtd2lkdGg6IDQwcmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9iYXItaGVpZ2h0OiAxLjJyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2Jhci1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItbWluLXdpZHRoOiA5cmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItaGVpZ2h0OiAwLjllbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWZpbGwtYmFja2dyb3VuZDogJGNvbG9yX3Jldmlldy1iYXItYWN0aXZlICFkZWZhdWx0O1xuXG4kcmV2aWV3cy1zdW1tYXJ5X25vdGUtZm9udC1zaXplOiA0cmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9ub3RlLWxlZnQtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfbm90ZS1yaWdodC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4kcmV2aWV3cy1yYXRpbmdzLWF2ZXJhZ2VzX2hpZGU6IGZhbHNlICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9hdmVyYWdlc19tYXgtd2lkdGg6IDQwcmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9hdmVyYWdlc19tYXgtd2lkdGgtbW9iaWxlOiAyNXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfXJldmlld3Mtc3VtbWFyeSB7XG4gICAgJHJvb3Q6ICY7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiAkcmV2aWV3cy1zdW1tYXJ5X2JvcmRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgZmxleDogMCAwICRyZXZpZXdzLXN1bW1hcnlfZGVza3RvcC13aWR0aDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZztcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkcmV2aWV3cy1zdW1tYXJ5X2JvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAmX19ub3RlIHtcbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3cy1zdW1tYXJ5X25vdGUtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzLXN1bW1hcnlfbm90ZS1sZWZ0LWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgfVxuXG4gICAgJl9fbm90ZS1yaWdodCB7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3cy1zdW1tYXJ5X25vdGUtcmlnaHQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fYWxsLWNvdW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmcgMDtcbiAgICAgICAgYm9yZGVyLXRvcDogJHJldmlld3Mtc3VtbWFyeV9ib3JkZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld3Mtc3VtbWFyeV9idXR0b24tZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJHJldmlld3Mtc3VtbWFyeV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3Mtc3VtbWFyeV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19zdGFycyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgZmxleDogMSAwIGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFycyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld3Mtc3VtbWFyeV9iYXJzLWZvbnQtc2l6ZTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSBpbnNpZGUgbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmcgMCAwO1xuICAgICAgICBmbGV4LWdyb3c6ICRyZXZpZXdzLXN1bW1hcnlfYmFycy1mbGV4LWdyb3c7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3cy1zdW1tYXJ5X2JhcnMtY29sb3I7XG4gICAgICAgIG1heC13aWR0aDogJHJldmlld3Mtc3VtbWFyeV9iYXItbWF4LXdpZHRoO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwIDAgJHJldmlld3Mtc3VtbWFyeV9iYXItbWFyZ2luLWJvdHRvbSAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgMy41ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLWNvdW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjVlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItbWluLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC44cmVtIDAgMC43cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1maWxsLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yYXRpbmdzLWF2ZXJhZ2VzIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmcgMCAwO1xuICAgICAgICBwYWRkaW5nOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmcgMCAwO1xuICAgICAgICBib3JkZXItdG9wOiAkcmV2aWV3cy1zdW1tYXJ5X2JvcmRlcjtcbiAgICAgICAgQGlmICgkcmV2aWV3cy1yYXRpbmdzLWF2ZXJhZ2VzX2hpZGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM7XG5cbiAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICRyZXZpZXdzLXN1bW1hcnlfYXZlcmFnZXNfbWF4LXdpZHRoLW1vYmlsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHJldmlld3Mtc3VtbWFyeV9hdmVyYWdlc19tYXgtd2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRyZXZpZXdzLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3BhY2luZzogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBSZXZpZXdzIGZvcm0gc3R5bGluZ1xuJHJldmlld3NfZm9ybS1wYWRkaW5nLWRlc2t0b3A6IDNyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLWRlc2t0b3A6IHRydWUgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLXNwYWNpbmc6ICRyZXZpZXdzX2Zvcm0tcGFkZGluZy1kZXNrdG9wICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1iYWNrZ3JvdW5kLWRlc2t0b3A6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcblxuJHJldmlld3NfZm9ybS1idXR0b24tYWxpZ246IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWJ1dHRvbi1hbGlnbi1kZXNrdG9wOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWhlYWRsaW5lLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDIwMCAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWNvbnRlbnQtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlciAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWZlZGJhY2stdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1mZWRiYWNrLWZvbnQtc2l6ZTogMC44NWVtICFkZWZhdWx0O1xuXG4kcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuJHJldmlld3NfbG9hZC1tb3JlLXNjZW5hcmlvLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kcmV2aWV3c19sb2FkLW1vcmUtYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJHJldmlld3NfbG9hZC1tb3JlLXBzZXVkb2ljb24tZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRyZXZpZXdzX2NvdW50LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31yZXZpZXdzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGZsZXg6IDEgMSAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9nYWxsZXJ5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMCAwICRyZXZpZXdzLXNwYWNpbmc7XG4gICAgICAgIG1hcmdpbjogMCAwICRyZXZpZXdzLXNwYWNpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLWJvcmRlcjtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgLy8gbWFyZ2luOiAkcmV2aWV3cy1zcGFjaW5nIDA7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmV2aWV3c19mb3JtLWJhY2tncm91bmQtZGVza3RvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzX2Zvcm0tcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3R5bGVzIG9mIHZhcmluYW50IHNlbGVjdCBmb3IgcmV2aWV3IChkaXNwbGF5ZWQgaWYgZW5hYmxlZCBpbiBjb25maWd1cmF0aW9uKVxuICAgICAgICAuc3dhdGNoLW9wdCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZpZWxkX2ZvbnQtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnIConO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDEuNGVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzX2Zvcm0taGVhZGxpbmUtZm9udC1zaXplO1xuICAgIH1cblxuICAgICZfX3Byb2R1Y3QtbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcmV2aWV3c19mb3JtLXByb2R1Y3QtbmFtZS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAmX19yYXRpbmctaXRlbTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJGZpZWxkX2ZvbnQtc2l6ZTtcblxuICAgICAgICBAaWYgKCRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHJldmlld3NfZm9ybS10d28tY29sdW1ucy1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHJldmlld3MtYm9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcmF0aW5ncyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBpZiAoJHJldmlld3NfZm9ybS10d28tY29sdW1ucy1kZXNrdG9wKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtc3BhY2luZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Ym1pdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRyZXZpZXdzX2Zvcm0tYnV0dG9uLWFsaWduO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHJldmlld3NfZm9ybS1idXR0b24tYWxpZ24tZGVza3RvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Ym1pdC1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHJldmlld3NfZm9ybS1zdWJtaXQtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzX2Zvcm0tc3VibWl0LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lTGcnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGluZy1jb250cm9sIHtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGJvcmRlcjogJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtcGFkZGluZztcbiAgICAgICAgaGVpZ2h0OiAkcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWNvbnRlbnQtaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWJhY2tncm91bmQ7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXG4gICAgICAgICN7JHJvb3R9X19yYXRlLXN0YXJzIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yYXRlLXN0YXJzIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgfVxuXG4gICAgJl9fcmF0ZS1mZWVkYmFjayB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzX2Zvcm0tZmVkYmFjay1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjllbTtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzX2Zvcm0tZmVkYmFjay10ZXh0LWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3Jldmlldy1maWVsZCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIH1cblxuICAgIC4jeyRuc31wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogJHJldmlld3Mtc3BhY2luZyAwO1xuICAgIH1cblxuICAgIEBpZiAoJHJldmlld3NfbG9hZC1tb3JlLXNjZW5hcmlvLWVuYWJsZWQpIHtcbiAgICAgICAgJi0tbG9hZC1tb3JlIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3c19sb2FkLW1vcmUtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRyZXZpZXdzX2xvYWQtbW9yZS1wc2V1ZG9pY29uLWVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAnYXJyb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktZmlsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICR3aWR0aDogMXJlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6IDFweCxcbiAgICAgICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAnZG93bicsXG4gICAgICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDEuNnJlbVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwIDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzX2xvYWQtbW9yZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb3VudCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sb2FkaW5nLW1hc2sge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3NwaW5uZXIuc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyLjVyZW0gMi41cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fY291bnQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcmV2aWV3c19jb3VudC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAndXRpbHMvZm9jdXMtaW5kaWNhdG9yJztcblxuJHN0YWNrLW5hdl9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9ib3gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X21vYmlsZS10cmlnZ2VyLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9tb2JpbGUtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRzdGFjay1uYXZfaXRlbS1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRzdGFjay1uYXZfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2l0ZW0tY3VycmVudC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2l0ZW0tY3VycmVudC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRzdGFjay1uYXZfaXRlbS1tb2JpbGUtaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRzdGFjay1uYXZfY3VycmVudC1pbmRpY2F0b3ItYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2N1cnJlbnQtaW5kaWNhdG9yLXdpZHRoOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2luZGljYXRvci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuXG4kc3RhY2stbmF2X2RlbGltaXRlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzdGFjay1uYXZfZGVsaW1pdGVyLWRpc2FibGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLiN7JG5zfXN0YWNrLW5hdiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIGZpbGw6ICM4ODg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddICN7JHJvb3R9X190cmlnZ2VyLWljb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGFjay1uYXZfbW9iaWxlLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzdGFjay1uYXZfYm94LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkc3RhY2stbmF2X2JveC1zaGFkb3c7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgID4gc3ZnLFxuICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmF2IHtcbiAgICAgICAgJi0tY29sbGFwc2libGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190cmlnZ2VyW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSAmIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgJjpoYXMoYTpmb2N1cykge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkgYSxcbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHN0YWNrLW5hdl9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkc3RhY2stbmF2X2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJHN0YWNrLW5hdl9pdGVtLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4xcmVtO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjhyZW0gMC41cmVtIDIuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnLFxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4zcmVtO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjFyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkgYTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RhY2stbmF2X2l0ZW0tbW9iaWxlLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBjb2xvcjogJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBhOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLWluZGljYXRvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkuY3VycmVudCBzdHJvbmcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFjay1uYXZfaXRlbS1jdXJyZW50LWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRzdGFjay1uYXZfaXRlbS1jdXJyZW50LWNvbG9yO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHN0YWNrLW5hdl9pdGVtLWN1cnJlbnQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkc3RhY2stbmF2X2luZGljYXRvci1lbmFibGVkIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkc3RhY2stbmF2X2N1cnJlbnQtaW5kaWNhdG9yLXdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzdGFjay1uYXZfY3VycmVudC1pbmRpY2F0b3ItYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXRlbSAuZGVsaW1pdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzdGFjay1uYXZfZGVsaW1pdGVyLWJvcmRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDEuOHJlbTtcblxuICAgICAgICAgICAgQGlmICRzdGFjay1uYXZfZGVsaW1pdGVyLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzZXQgc3R5bGUgZm9yIGxpbmsgaWYgaXQgaXMgYSBjaGlsZCBvZiBjdXJyZW50IGl0ZW1cbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkuY3VycmVudCBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreS1ibG9jay9taXhpbic7XG5cbi4jeyRuc31zdGlja3ktYmxvY2sge1xuICAgIEBpbmNsdWRlIHN0aWNreUJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmLS1wZHAge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDE1cHggLSAwLjVyZW0pO1xuXG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB0b3A6IDNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMzBweCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbm8tbW9iaWxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgIHRvcDogOC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHRvcDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIHN0aWNreUJsb2NrKCkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIHRvcDogMWVtO1xuICAgIH1cbn1cbiIsIi8qKiBTdHlsZXMgZm9ybSBfdGFibGVzLmxlc3Mgb2YgdGhlbWUgYmxhbmsgYXJlIG1vdmVkIGhlcmUuXG4gICAqIEZvciBzb21lIHRhYmxlcyB0aGVyZSBpcyBtb2JpbGUgbGF5b3V0IGFwcGxpZWQgYWxzbyBmb3IgdGFibGV0IHJlc29sdXRpb25zXG4gICAqIFZhcmlhYmxlcyBmb3IgdHlwb2dyYXB5LCBjb2xvcnMsIGJvcmRlciBldGMuIGFyZSBhZGRlZFxuKi9cblxuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlL21peGluJztcblxuJHRhYmxlX2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRhYmxlX2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJHRhYmxlX3Jvdy1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiR0YWJsZV9jb2x1bW4tYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJHRhYmxlX2V2ZW4tcm93LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4kdGFibGVfaGVhZC1ib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHRhYmxlX2hlYWQtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTUgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJHRhYmxlX2hlYWRfZm9udC1zaXplLS1tb2JpbGU6IDEuNHJlbSAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkX21vdmUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuXG4kdGFibGVfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHRhYmxlX2l0ZW0tZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcbiR0YWJsZV9pdGVtLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kdGFibGVfaXRlbS1saW5lLWhlaWdodDogaW5oZXJpdDtcbiR0YWJsZV9pdGVtLXBhZGRpbmc6IDAuOHJlbSAxcmVtICFkZWZhdWx0O1xuJHRhYmxlX2FjdGlvbnMtbGlua3Mtc2VwYXJhdG9yOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblxuLnRhYmxlLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmNhcnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAudGFibGUtd3JhcHBlci5jYXJ0ICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyb3VwZWQge1xuICAgICAgICB0Ym9keTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udGFibGUge1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZV9ib3JkZXItYm90dG9tO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGVfYmFja2dyb3VuZDtcblxuICAgICYgPiBjYXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJjpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0YWJsZV9pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfaGVhZC1ib3JkZXItYm90dG9tO1xuXG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkdGFibGVfaGVhZC1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0YWJsZV9oZWFkLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGVfaGVhZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICR0YWJsZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRhYmxlX2l0ZW0tY29sb3I7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZV9pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR0YWJsZV9yb3ctYm9yZGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkdGFibGVfY29sdW1uLWJvcmRlcjtcblxuICAgICAgICAgICAgICAgICYuYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlX3Jvdy1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBhICsgYTpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuN3JlbSAwIDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkdGFibGVfYWN0aW9ucy1saW5rcy1zZXBhcmF0b3I7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgICAgICAgICAgICAgIC5hY2NvdW50ICYge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGFibGVfZXZlbi1yb3ctYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0Zm9vdCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICR0YWJsZV9pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2dhbGxlcnk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXJrIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgLmFtb3VudCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1leGNsdWRpbmctdGF4LFxuICAgIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgIC5pdGVtcy1xdHksXG4gICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdGFibGVfaXRlbS1saW5lLWhlaWdodDtcbiAgICB9XG59XG5cbi8vICBNb2JpbGUgbGF5b3V0XG5AaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAudGFibGUtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dCgpO1xuXG4gICAgICAgIC50YWJsZSB7XG4gICAgICAgICAgICAmOm5vdCguY29tcGFyaXNvbikge1xuICAgICAgICAgICAgICAgICY6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAkaGVhZF9jb2xvcjogJHRhYmxlX2hlYWQtY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaGVhZF9tb3ZlLW9uLW1vYmlsZTogJHRhYmxlX2hlYWRfbW92ZS1vbi1tb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaGVhZF9mb250LXNpemUtLW1vYmlsZTogJHRhYmxlX2hlYWRfZm9udC1zaXplLS1tb2JpbGVcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCR0YWJsZV9oZWFkX21vdmUtb24tbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3Qge1xuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdGgsXG4gICAgICAgIHRib2R5IHRkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU29tZSB0YWJsZXMgZGlzcGxheSBtb2JpbGUgbGF5b3V0IGFsc28gb24gdGFibGV0IHJlc29sdXRpb25cbi50YWJsZS13cmFwcGVyLmNhcnQsXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAudGFibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiB0YWJsZS1tb2JpbGUtbGF5b3V0LWhvb2soKSB7XG59XG5cbkBtaXhpbiB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUvaG9vayc7XG5cbiRoZWFkX2NvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJGhlYWRfbW92ZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kaGVhZF9mb250LXNpemUtLW1vYmlsZTogMS40cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gdGFibGUtbW9iaWxlLWxheW91dChcbiAgICAkaGVhZF9jb2xvcjogJGhlYWRfY29sb3IsXG4gICAgJGhlYWRfbW92ZS1vbi1tb2JpbGU6ICRoZWFkX21vdmUtb24tbW9iaWxlLFxuICAgICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAkaGVhZF9mb250LXNpemUtLW1vYmlsZVxuKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgdGJvZHkgdGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlO1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW07XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGhlYWRfbW92ZS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSAnOiAnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVhZF9jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9hbHRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZVxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0YWJsZS1tb2JpbGUtbGF5b3V0LWhvb2soKTtcbn1cblxuQG1peGluIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dCgpIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIFRvIGhpZGUgdW5uZWNlc3NhcnkgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cbiAgICBAaW5jbHVkZSB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQtaG9vaygpO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJHRvb2xiYXJfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiR0b29sYmFyX2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcbiR0b29sYmFyX2ZsZXgtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC13cmFwOiB3cmFwICFkZWZhdWx0O1xuJHRvb2xiYXJfZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9mb250LXdlaWdodDogaW5oZXJpdCAhZGVmYXVsdDtcbiR0b29sYmFyX3RleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9lbGVtZW50cy1wYWRkaW5nLXRhYmxldC11cDogMCAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbjogMCAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbi10YWJsZXQtdXA6IDAhZGVmYXVsdDtcblxuJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQ6IDMuNXJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2lucHV0LW1heC1oZWlnaHQ6ICR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0ICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9zZWxlY3RzLW1heC13aWR0aC10YWJsZXQ6IDIwcmVtICFkZWZhdWx0OyAvLyBzZXQgJ25vbmUnIHRvIGRpc2FibGVcblxuJHRvb2xiYXJfY29tcG9uZW50cy1hbGlnbm1lbnQ6IChcbiAgICBhbW91bnQ6IGxlZnQsXG4gICAgc29ydGVyOiBsZWZ0LFxuICAgIGxpbWl0ZXI6IGxlZnQsXG4gICAgdmlld21vZGUtc3dpdGNoZXI6IGxlZnQsXG4gICAgcGFnaW5hdGlvbjogcmlnaHQsXG4pICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9hbW91bnQtYWxpZ246IGxlZnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9zb3J0ZXItYWxpZ246IGxlZnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9saW1pdGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfdmlld21vZGUtc3dpdGNoZXItYWxpZ246IGxlZnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9wYWdpbmF0aW9uLWFsaWduOiByaWdodCAhZGVmYXVsdDtcblxuJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvczogJ2xlZnQnICFkZWZhdWx0O1xuXG4uI3skbnN9dG9vbGJhciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBmb250LXNpemU6ICR0b29sYmFyX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHRvb2xiYXJfZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0b29sYmFyX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiAkdG9vbGJhcl9kaXNwbGF5O1xuXG4gICAgICAgIEBpZiAkdG9vbGJhcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICR0b29sYmFyX2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR0b29sYmFyX2ZsZXgtanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgZmxleC13cmFwOiAkdG9vbGJhcl9mbGV4LXdyYXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46ICR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW46ICR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbi10YWJsZXQtdXA7XG4gICAgICAgICAgICBwYWRkaW5nOiAkdG9vbGJhcl9lbGVtZW50cy1wYWRkaW5nLXRhYmxldC11cDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbW9kaWZpZXIsICR2YWx1ZSBpbiAkdG9vbGJhcl9jb21wb25lbnRzLWFsaWdubWVudCB7XG4gICAgICAgICAgICBAaWYgJHZhbHVlID09IHJpZ2h0IHtcbiAgICAgICAgICAgICAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgJHRvb2xiYXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbWl0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vZmZjYW52YXMge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZCAubGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogJHRvb2xiYXJfZm9udC13ZWlnaHQ7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC4jeyRuc31odG1sLXNlbGVjdCB7XG4gICAgICAgIEBpZiAkdG9vbGJhcl9zZWxlY3RzLW1heC13aWR0aC10YWJsZXQgIT0gbm9uZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICR0b29sYmFyX3NlbGVjdHMtbWF4LXdpZHRoLXRhYmxldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RyaWdnZXIge1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWx0ZXJzLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIuM3JlbTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIuM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpbHRlcnMtYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9hbW91bnQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvc29ydGVyLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL2xpbWl0ZXIuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvcGFnaW5hdGlvbi5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci92aWV3bW9kZS1zd2l0Y2hlci5zY3NzJztcbiIsIi50b29sYmFyLWFtb3VudCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kc29ydGVyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kc29ydGVyX2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcblxuJHNvcnRlcl9sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuJHNvcnRlcl9sYWJlbC13aGl0ZS1zcGFjZTogbm93cmFwICFkZWZhdWx0O1xuXG4kc29ydGVyX3NlbGVjdC1tYXgtd2lkdGg6IDE4cmVtICFkZWZhdWx0O1xuXG4uI3skbnN9c29ydGVyIHtcbiAgICBkaXNwbGF5OiAkc29ydGVyX2Rpc3BsYXk7XG5cbiAgICBAaWYgJHNvcnRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogJHNvcnRlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgcGFkZGluZzogJHNvcnRlcl9sYWJlbC1wYWRkaW5nO1xuICAgICAgICB3aGl0ZS1zcGFjZTogJHNvcnRlcl9sYWJlbC13aGl0ZS1zcGFjZTtcbiAgICB9XG5cbiAgICAmX19zZWxlY3Qge1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkc29ydGVyX3NlbGVjdC1tYXgtd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBhZ2luYXRpb24tbGlzdC1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWhvb2soKSB7XG59XG5cbkBtaXhpbiBwYWdpbmF0aW9uLW51bWJlci1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kbGltaXRlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGxpbWl0ZXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuXG4kbGltaXRlcl9sYWJlbHMtd2hpdGUtc3BhY2U6IG5vd3JhcCAhZGVmYXVsdDtcbiRsaW1pdGVyX21hcmdpbjogMCAxcmVtIDAgMDtcbiRsaW1pdGVyX3ByZWZpeC1sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAxcmVtICFkZWZhdWx0O1xuJGxpbWl0ZXJfc3VmZml4LWxhYmVsLXBhZGRpbmc6IDAgMCAwIDFyZW0gIWRlZmF1bHQ7XG5cbiRzb3J0ZXJfc2VsZWN0LW1pbi1oZWlnaHQ6ICR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0ICFkZWZhdWx0O1xuXG4uI3skbnN9bGltaXRlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiAkbGltaXRlcl9kaXNwbGF5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46ICRsaW1pdGVyX21hcmdpbjtcblxuICAgIEBpZiAkbGltaXRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogJGxpbWl0ZXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICAmLFxuICAgICAgICAuZmllbGQgJiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogJGxpbWl0ZXJfbGFiZWxzLXdoaXRlLXNwYWNlO1xuXG4gICAgICAgICAgICAmLS1wcmVmaXgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsaW1pdGVyX3ByZWZpeC1sYWJlbC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zdWZmaXgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsaW1pdGVyX3N1ZmZpeC1sYWJlbC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFnaW5hdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdCgpO1xuICAgIH1cblxuICAgICZfX3BhZ2luYXRpb24taXRlbSB7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0oKTtcbiAgICB9XG5cbiAgICAmX19wYWdpbmF0aW9uLW51bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgI3skcm9vdH1fX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLiN7JG5zfWh0bWwtc2VsZWN0LFxuICAgIC4jeyRuc31odG1sLXNlbGVjdF9fdHJpZ2dlcixcbiAgICBzZWxlY3Qge1xuICAgICAgICBtaW4td2lkdGg6IDNyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRzb3J0ZXJfc2VsZWN0LW1pbi1oZWlnaHQ7XG4gICAgfVxufVxuXG4vL3VzZXIgYXJlYSBsaW1pdGVyIGFmdGVyIHJlZmFjdG9yXG5cbi4jeyRuc31kYXNoYm9hcmQge1xuICAgIC5saW1pdGVyLWxhYmVsLFxuICAgIC5saW1pdGVyLXRleHQge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLmxpbWl0ZXItdGV4dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLmxpbWl0ZXItb3B0aW9ucyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9ob29rcy5zY3NzJztcblxuJHBhZ2luYXRpb24tbGlzdF9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGlzdF9mbGV4LWFsaWduLWl0ZW1zOiBzdHJldGNoICFkZWZhdWx0O1xuQG1peGluIHBhZ2luYXRpb24tbGlzdCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIGRpc3BsYXk6ICRwYWdpbmF0aW9uLWxpc3RfZGlzcGxheTtcblxuICAgIEBpZiAkbGltaXRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogJHBhZ2luYXRpb24tbGlzdF9mbGV4LWFsaWduLWl0ZW1zO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdC1ob29rKCk7XG59XG5cbiRwYWdpbmF0aW9uLWl0ZW1fbWFyZ2luOiAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci13aWR0aCBzb2xpZFxuICAgICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlczogdHJ1ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9hcy1jaXJjbGU6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBtYXJnaW46ICRwYWdpbmF0aW9uLWl0ZW1fbWFyZ2luO1xuICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW1fcGFkZGluZztcbiAgICBib3JkZXI6ICRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtX21hcmdpbiA9PVxuICAgICAgICAwIGFuZFxuICAgICAgICAkcGFnaW5hdGlvbi1pdGVtX2JvcmRlci13aWR0aCAhPVxuICAgICAgICAwIGFuZFxuICAgICAgICAkcGFnaW5hdGlvbi1pdGVtX2JvcmRlciAhPVxuICAgICAgICBub25lXG4gICAge1xuICAgICAgICBtYXJnaW4tbGVmdDogLSN7JHBhZ2luYXRpb24taXRlbV9ib3JkZXItd2lkdGh9O1xuICAgIH1cblxuICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMtcmFkaXVzO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMtcmFkaXVzO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMtcmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWdpbmF0aW9uLWl0ZW1fYXMtY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1ob29rKCk7XG59XG5cbiRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGg6IDMuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9taW4taGVpZ2h0OiAkcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX3BhZGRpbmc6IDAuM2VtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX2NvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX3RyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0taG92ZXJfY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0taG92ZXJfYmFja2dyb3VuZDogaW5oZXJpdCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0taG92ZXJfdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0ICFkZWZhdWx0O1xuQG1peGluIHBhZ2luYXRpb24tbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAkcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoO1xuICAgIG1pbi1oZWlnaHQ6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4taGVpZ2h0O1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJHBhZ2luYXRpb24tbnVtYmVyX3BhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbnVtYmVyX2JhY2tncm91bmQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tbnVtYmVyX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX2ZvbnQtd2VpZ2h0O1xuICAgIHRyYW5zaXRpb246ICRwYWdpbmF0aW9uLW51bWJlcl90cmFuc2l0aW9uO1xuXG4gICAgJixcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tbnVtYmVyX2NvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwYWdpbmF0aW9uLW51bWJlcl90ZXh0LWRlY29yYXRpb247XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9iYWNrZ3JvdW5kO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwYWdpbmF0aW9uLW51bWJlci0taG92ZXJfdGV4dC1kZWNvcmF0aW9uO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyLWhvb2soKTtcbn1cblxuJHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50X2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnRfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuQG1peGluIHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50IHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnRfY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9iYWNrZ3JvdW5kO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQtaG9vaygpO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzJztcblxuJHBhZ2luYXRpb25fY29udGVudC1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb25fY29udGVudC1mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uX3ByZWZpeC1sYWJlbC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMCAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb25fcGFnZS1wcm92aWRlci1pbnB1dC13aWR0aDogNC41ZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LWZvbnQtc2l6ZTogMC44NWVtICFkZWZhdWx0O1xuXG4vLyBwcmV2L25leHQgYXJyb3dzXG4kcGFnaW5hdGlvbl9hY3Rpb24tZ3V0dGVyOiAxLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi13aWR0aDogMS4zcmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb25fYWN0aW9uLWljb24taGVpZ2h0OiAyLjRyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi10cmFuc2l0aW9uOiBmaWxsIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWFjdGlvbi0taG92ZXJfaWNvbi1maWxsOiAkY29sb3JfdG9yZWEtYmF5ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aW9uLS1kaXNhYmxlZF9pY29uLWZpbGw6ICRjb2xvcl9hbHRvICFkZWZhdWx0O1xuXG4uI3skbnN9cGFnaW5hdGlvbiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogJHBhZ2luYXRpb25fY29udGVudC1kaXNwbGF5O1xuXG4gICAgICAgIEBpZiAkbGltaXRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRwYWdpbmF0aW9uX2NvbnRlbnQtZmxleC1hbGlnbi1pdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByZWZpeC1sYWJlbCB7XG4gICAgICAgIG1hcmdpbjogJHBhZ2luYXRpb25fcHJlZml4LWxhYmVsLW1hcmdpbjtcbiAgICAgICAgcGFkZGluZzogJHBhZ2luYXRpb25fcHJlZml4LWxhYmVsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5wdXQgbW9kZVxuICAgICAqL1xuICAgICZfX3BhZ2UtcHJvdmlkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWlucHV0LmlucHV0LXRleHQge1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAkdG9vbGJhcl9pbnB1dC1tYXgtaGVpZ2h0OyAvLyB2YXIgaW5oZXJpdGVkIGZyb20gLi90b29sYmFyXG4gICAgICAgIHdpZHRoOiAkcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LXdpZHRoO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJHBhZ2luYXRpb25fcGFnZS1wcm92aWRlci1pbnB1dC1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJl9fcGFnZS1wcm92aWRlci1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCdWxsZXQgcG9pbnRzIG1vZGVcbiAgICAgKi9cbiAgICAmX19pdGVtcyB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdCgpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0oKTtcbiAgICB9XG5cbiAgICAmX19udW1iZXIge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlcigpO1xuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByZXYge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fbmV4dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkcGFnaW5hdGlvbl9hY3Rpb24tZ3V0dGVyO1xuICAgIH1cblxuICAgICZfX2FjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1pbi13aWR0aDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi13aWR0aDsgLy8gdmFyIGluaGVyaXRlZCBmcm9tIC4vbWl4aW5zXG4gICAgICAgIG1pbi1oZWlnaHQ6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4taGVpZ2h0OyAvLyB2YXIgaW5oZXJpdGVkIGZyb20gLi9taXhpbnNcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWljb24ge1xuICAgICAgICB3aWR0aDogJHBhZ2luYXRpb25fYWN0aW9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJHBhZ2luYXRpb25fYWN0aW9uLWljb24taGVpZ2h0O1xuICAgICAgICBmaWxsOiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1maWxsO1xuICAgICAgICB0cmFuc2l0aW9uOiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi10cmFuc2l0aW9uO1xuXG4gICAgICAgICN7JHJvb3R9X19hY3Rpb24tLWRpc2FibGVkICYge1xuICAgICAgICAgICAgZmlsbDogJHBhZ2luYXRpb24tYWN0aW9uLS1kaXNhYmxlZF9pY29uLWZpbGw7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fYWN0aW9uOm5vdCgjeyRyb290fV9fYWN0aW9uLS1kaXNhYmxlZCk6aG92ZXIgJixcbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbjpub3QoI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQpOmZvY3VzICYsXG4gICAgICAgICN7JHJvb3R9X19hY3Rpb246bm90KCN7JHJvb3R9X19hY3Rpb24tLWRpc2FibGVkKTphY3RpdmUgJiB7XG4gICAgICAgICAgICBmaWxsOiAkcGFnaW5hdGlvbi1hY3Rpb24tLWhvdmVyX2ljb24tZmlsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kdmlld21vZGUtc3dpdGNoZXJfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2xhYmVsLXBhZGRpbmc6IDAgMXJlbSAwIDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc6IDAuN2VtICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZmlsbDogY3VycmVudENvbG9yICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLS1jdXJyZW50LWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLWhlaWdodDogMS4xcmVtICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3Qtd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3QtaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc312aWV3bW9kZS1zd2l0Y2hlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiAkdmlld21vZGUtc3dpdGNoZXJfZGlzcGxheTtcblxuICAgIEBpZiAkc29ydGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkdmlld21vZGUtc3dpdGNoZXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogJHZpZXdtb2RlLXN3aXRjaGVyX2xhYmVsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fbW9kZXMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdCgpO1xuICAgIH1cblxuICAgICZfX21vZGUge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0oKTtcbiAgICB9XG5cbiAgICAmX19tb2RlLWFjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBzZXQgaGVpZ2h0IGV4cGxpY2l0bHkgZm9yIElFXG4gICAgICAgIHBhZGRpbmctbGVmdDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi14LWF4aXMtcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi14LWF4aXMtcGFkZGluZztcblxuICAgICAgICAjeyRyb290fV9fbW9kZS0tY3VycmVudCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tb2RlLWljb24ge1xuICAgICAgICBmaWxsOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZmlsbDtcblxuICAgICAgICAmLS1ncmlkIHtcbiAgICAgICAgICAgIHdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3Qtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19tb2RlLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgZmlsbDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLS1jdXJyZW50LWZpbGw7XG4gICAgICAgIH1cblxuICAgICAgICArICN7JHJvb3R9X19tb2RlLWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBRXpCQTs7QUFBQTtBQVFBO0FBK0JBO0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0FBakJBOzs7QUFHQTtBQW1CQTtBQUNBO0FBakJBO0FDakJBO0FEbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFtQkE7QUFDQTtBQWpCQTtBRFBBO0FBQ0E7QUFDQTtBQzJCQTtBQUNBO0FBbkJBOzs7O0FBSUE7QUFxQkE7QUFDQTtBQW5CQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBb0JBO0FBbEJBO0FBRUE7QUFDQTtBQW1CQTtBQUNBO0FBZkE7QUFFQTtBQUNBO0FBUUE7QUFTQTtBQWhCQTtBQUVBO0FBQ0E7QUFDQTtBQWlCQTtBQWJBO0FBSUE7QUFZQTtBQUNBO0FBUEE7QUFDQTtBQVNBO0FIdEZBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FLdkJBOztBQUFBO0FBSUE7OztBQUFBO0FBU0E7OztBQUFBO0FBVUE7O0FBQUE7QUNyQkE7QURPQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FDd0NBO0FEdENBO0FEaUJBO0FBQ0E7QUFDQTtBQ2pCQTtBQzBDQTtBRHhDQTtBQUVBO0FBQ0E7QUFDQTtBQ3lDQTtBRHJDQTtBQUNBO0FDdUNBO0FDNmVBO0FGcmhCQTtBQUlBO0FDd0NBO0FBQ0E7QUN3ZUE7QUZyaEJBO0FBUUE7QUN5Q0E7QUFDQTtBQ21lQTtBRnJoQkE7QUFZQTtBQzBDQTtBQUNBO0FEdkNBO0FBQ0E7QUFDQTtBQ3lDQTtBQzBkQTtBRnJnQkE7QUFLQTtBQzBDQTtBQUNBO0FDcWRBO0FGcmdCQTtBQVNBO0FDMkNBO0FBQ0E7QUNnZEE7QUZyZ0JBO0FBYUE7QUFDQTtBQzRDQTtBQUNBO0FDMGNBO0FGcGZBO0FBRUE7QUM0Q0E7QUFDQTtBRHhDQTtBQUNBO0FDMENBO0FDa2NBO0FGN2VBO0FBSUE7QUFDQTtBQUNBO0FDMkNBO0FBQ0E7QUR4Q0E7QUFDQTtBQUNBO0FDMENBO0FDdWJBO0FGbmVBO0FBS0E7QUFDQTtBQzJDQTtBQUNBO0FEeENBO0FBQ0E7QUMwQ0E7QUR2Q0E7QUFDQTtBQ3lDQTtBRHRDQTtBQUNBO0FDd0NBO0FEckNBO0FBQ0E7QUFDQTtBQ3VDQTtBRG5DQTtBQUNBO0FDcUNBO0FBQ0E7QURoQ0E7QUFDQTtBQUNBO0FDa0NBO0FBQ0E7QVBsSkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QVN6QkE7QUFZQTtBVFpBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FPbkJBOztBQUVBO0FBQ0E7QUE4S0E7QUFDQTtBQTVLQTtBQUNBO0FBQ0E7QUFDQTtBQThLQTtBQUNBO0FBNUtBO0FBQ0E7QUE4S0E7QUFDQTtBQTVLQTtBQUNBO0FBOEtBO0FBQ0E7QUE1S0E7QUFDQTtBQUNBO0FBOEtBO0FDbVdBO0FEbmhCQTtBQUtBO0FBQ0E7QUErS0E7QUFDQTtBQUNBO0FBcktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF1S0E7QUNzVkE7QURqZ0JBO0FBT0E7QUF3S0E7QUFDQTtBQUNBO0FBdEtBO0FBQ0E7QUF3S0E7QUM2VUE7QUR0ZkE7QUFJQTtBQXlLQTtBQUNBO0FBQ0E7QUF0S0E7QUFDQTtBQXdLQTtBQ29VQTtBRDdlQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBeUtBO0FBQ0E7QUM0VEE7QUQ3ZUE7QUFXQTtBQTBLQTtBQUNBO0FBQ0E7QUNzVEE7QUQzZEE7O0FBRUE7QUFDQTtBQUNBO0FBd0tBO0FBcktBO0FBQ0E7QUF1S0E7QUFwS0E7QUFDQTtBQXNLQTtBQW5LQTtBQUNBO0FBcUtBO0FBQ0E7QUdqT0E7QUFFQTtBQUNBO0FIa09BO0FHL05BO0FBS0E7QUFDQTtBSDZOQTtBQUNBO0FBbktBO0FBQ0E7QUFxS0E7QUFDQTtBQ3dSQTtBRDFiQTtBQUVBO0FBb0tBO0FBQ0E7QUFDQTtBQ2tSQTtBRGxiQTtBQUNBO0FBbUtBO0FBaEtBO0FBQ0E7QUFrS0E7QUFDQTtBQzBRQTtBRHBiQTtBQVlBO0FBa0tBO0FBQ0E7QUFDQTtBQWhLQTtBQUNBO0FBa0tBO0FBQ0E7QUFoS0E7QUFDQTtBQWtLQTtBUGhUQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBV3pCQTs7Ozs7Ozs7O0FBQUE7QUNPQTtBQUNBO0FBd0JBO0FBQ0E7QUF0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXdCQTtBQUNBO0FBdEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF3QkE7QUFDQTtBQXRCQTtBQUNBO0FBd0JBO0FBQ0E7QUF0QkE7QUFDQTtBQXdCQTtBQUNBO0FBdEJBO0FBQ0E7QUF3QkE7QUFDQTtBQXRCQTtBQUNBO0FBd0JBO0FBQ0E7QUF0QkE7QUFDQTtBQXdCQTtBQUNBO0FBdEJBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBd0JBO0FBQ0E7QUF0QkE7QUFDQTtBQUNBO0FBd0JBO0FBQ0E7QUF0QkE7QUFDQTtBQXdCQTtBQUNBO0FBdEJBO0FBQ0E7QUFDQTtBQXdCQTtBQUNBO0FBckJBO0FEOURBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQ3VGQTtBQS9CQTtBQUNBO0FBaUNBO0FBQ0E7QUEzQkE7QUR6RUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FDd0dBO0FBQ0E7QUFuQ0E7QUFDQTtBQXFDQTtBQUNBO0FBbkNBO0FBQ0E7QUFxQ0E7QUFDQTtBQW5DQTtBQUNBOztBQUVBO0FBcUNBO0FBQ0E7QUppYUE7QUlsY0E7QUFDQTtBQW9DQTtBQUNBO0FBbENBO0FBQ0E7QUFDQTtBQW9DQTtBQUNBO0FBbENBO0FBQ0E7QUFDQTtBQW9DQTtBQUNBO0FKa1pBO0FJbGJBO0FBQ0E7QUFDQTtBQW1DQTtBQUNBO0FBakNBO0FBQ0E7QUFtQ0E7QUFDQTtBQWpDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFtQ0E7QUFDQTtBQWpDQTtBQUNBO0FBQ0E7QUFtQ0E7QUFDQTtBQWpDQTtBQUNBO0FBbUNBO0FBQ0E7QUFqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbUNBO0FBQ0E7QUFqQ0E7O0FBRUE7QUFtQ0E7QUFDQTtBQWpDQTtBQUNBO0FBbUNBO0FBQ0E7QUFqQ0E7QUFDQTtBQW1DQTtBQUNBO0FBakNBO0FEOUpBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQ21NQTtBQUNBO0Faek5BOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FhdEJBO0FBQ0E7QUFrQkE7QUFoQkE7QUFIQTtBQ2dCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FET0E7QUNMQTtBQUNBO0FET0E7QUNKQTtBQUNBO0FETUE7QUNIQTtBQUNBO0FBQ0E7QURLQTtBQ0ZBO0FBQ0E7QURJQTtBQ0NBO0FBQ0E7QURDQTtBQ0VBO0FBQ0E7QUFDQTtBQUNBO0FEQUE7QUFDQTtBYmhFQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBZXRCQTtBQ2NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBREtBO0FDSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBREtBO0FDSEE7QUFDQTtBREtBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURHQTtBQ0RBO0FBQ0E7QURHQTtBQ0FBO0FBQ0E7QURFQTtBZnJEQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7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Q0E7O0FENEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNwRUE7QUQwRUE7O0FBQ0E7QUFDQTtBQ3ZFQTtBQXpDQTs7O0FENkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FDaEZBO0FEb0ZBOzs7OztBQUNBO0FBQ0E7QUM5RUE7QURrRkE7QUFDQTtBQUNBO0FDOUVBO0FENEVBOzs7QUFDQTtBQUNBO0FDOUVBO0FEaUZBOzs7QUFDQTtBQzdFQTtBRG9GQTs7Ozs7QUFFQTtBQy9FQTtBQTNFQTs7QUR5TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMxSEE7QUQ2SEE7OztBQUVBO0FBQ0E7QUMxSEE7QUQrSEE7OztBQUNBO0FBQ0E7QUFDQTtBQzNIQTtBRCtIQTs7QUFDQTtBQzVIQTtBRCtIQTs7QUFDQTtBQUNBO0FBQ0E7QUM1SEE7QUFySEE7O0FENFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3BJQTtBRHVJQTs7O0FBRUE7QUFDQTtBQ3BJQTtBRHlJQTs7O0FBQ0E7QUFDQTtBQUNBO0FDcklBO0FEeUlBOztBQUNBO0FDdElBO0FEd0lBOzs7O0FBR0E7QUFDQTtBQUNBO0FDcklBO0FEeUlBOzs7O0FBR0E7QUN0SUE7QUFoS0E7O0FEa1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQStDQTtBQUNBO0FDN0hBO0FEZ0ZBOzs7QUFFQTtBQUNBO0FDN0VBO0FEa0ZBOzs7QUFDQTtBQUNBO0FBQ0E7QUM5RUE7QURrRkE7O0FBQ0E7QUMvRUE7QURpRkE7Ozs7QUFHQTtBQUNBO0FBQ0E7QUM5RUE7QURrRkE7Ozs7QUFHQTtBQy9FQTtBRGdHQTs7QUFDQTtBQzdGQTtBRGpGQTs7O0FBRUE7QUNvRkE7QUFsTkE7O0FEcUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2lGQTtBQXZOQTs7QURnSkE7QUFDQTtBQUNBO0FBQ0E7QUMyRUE7QUExTkE7O0FENElBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUMyRUE7QUFDQTtBQTlOQTtBRDRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNxTUE7QUFyT0E7QUFDQTtBQXVPQTtBQXJPQTtBRGlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQ3ZIQTtBQTZPQTtBQXhPQTtBRHVEQTtBQ29MQTtBQXhPQTtBRDBEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQ2dMQTtBRDVLQTtBQUNBO0FBQ0E7QUM4S0E7QUQxS0E7QUFDQTtBQUNBO0FDNEtBO0FEOUtBO0FBQ0E7QUFDQTtBQzRLQTtBRHpLQTtBQUNBO0FDMktBO0FBN1BBO0FENEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNvT0E7QUFoUUE7QUFDQTtBQUNBO0FBa1FBO0FEbE9BO0FBQ0E7QUFDQTtBQ29PQTtBQXpQQTtBQUVBO0FBMFBBO0FBcFBBO0FEMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FDNE5BO0FEeE5BO0FBQ0E7QUFDQTtBQzBOQTtBRHROQTtBQUNBO0FBQ0E7QUN3TkE7QUQxTkE7QUFDQTtBQUNBO0FDd05BO0FEck5BO0FBQ0E7QUN1TkE7QURoTkE7QUFFQTtBQ2lOQTtBQTFRQTtBQUNBO0FBNFFBO0FBeFFBO0FEbUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDd0tBO0FEcktBO0FBRUE7QUFDQTtBQ3NLQTtBRGpLQTtBQUNBO0FBQ0E7QUFDQTtBQ21LQTtBRC9KQTtBQUNBO0FDaUtBO0FEOUpBO0FBQ0E7QUFDQTtBQUNBO0FDZ0tBO0FBM1NBO0FEc0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQStDQTtBQUNBO0FDeUdBO0FEdEpBO0FBRUE7QUFDQTtBQ3VKQTtBRGxKQTtBQUNBO0FBQ0E7QUFDQTtBQ29KQTtBRGhKQTtBQUNBO0FDa0pBO0FEaEpBO0FBR0E7QUFDQTtBQUNBO0FDZ0pBO0FENUlBO0FBR0E7QUM0SUE7QUQzSEE7QUFDQTtBQzZIQTtBRDNTQTtBQUVBO0FDNFNBO0FBaFZBO0FEMElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3dNQTtBRHJNQTtBQUVBO0FBQ0E7QUNzTUE7QURqTUE7QUFDQTtBQUNBO0FBQ0E7QUNtTUE7QUQvTEE7QUFDQTtBQ2lNQTtBRC9MQTtBQUdBO0FBQ0E7QUFDQTtBQytMQTtBRDNMQTtBQUdBO0FDMkxBO0FBaFhBO0FEMEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeVNBO0FEdFNBO0FBRUE7QUFDQTtBQ3VTQTtBRGxTQTtBQUNBO0FBQ0E7QUFDQTtBQ29TQTtBRGhTQTtBQUNBO0FDa1NBO0FEL1JBO0FBQ0E7QUFDQTtBQUNBO0FDaVNBO0FEek1BO0FBek5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQXpEQTtBQUNBO0FBMkRBO0FBQ0E7QUFDQTtBQXpEQTtBQUNBO0FBMkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBekRBO0FBQ0E7QUEyREE7QUFDQTtBQUNBO0FBQ0E7QUF6REE7QUFDQTtBQTJEQTtBQUNBO0FBekRBO0FBQ0E7QUEyREE7QUFDQTtBQUNBO0FBekRBO0FBQ0E7QUEyREE7QUFDQTtBQXpEQTtBQUNBO0FBMkRBO0FBRUE7OztBQUdBO0FBMURBO0FBQ0E7QUE2REE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNEQTtBQUNBO0FBNkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEzREE7QUFDQTtBQTZEQTs7OztBQUlBO0FBM0RBO0FBQ0E7QUE2REE7Ozs7QUFJQTtBQUNBO0FBM0RBO0FBQ0E7QUE2REE7QUFDQTtBQTNEQTtBQUNBO0FBNkRBO0FBQ0E7QUEzREE7QUFDQTtBQTZEQTtBQUNBO0FBM0RBO0FBQ0E7QUE2REE7QUFDQTtBQTNEQTtBQUNBO0FBNkRBOzs7O0FBSUE7QUEzREE7QUFDQTtBQTZEQTs7Ozs7O0FBTUE7QUEzREE7QUFDQTtBQTZEQTs7Ozs7O0FBTUE7QUFDQTtBQTNEQTtBQUNBO0FBNkRBOzs7Ozs7QUFNQTtBQTNEQTtBQUNBO0FBNkRBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUEzREE7QUFDQTtBQTZEQTs7QUFFQTtBQTNEQTtBQUNBO0FBNkRBOzs7OztBQUtBO0FBQ0E7QUFDQTtBQTNEQTtBQUNBO0FBNkRBOzs7OztBQUtBO0FBM0RBO0FBQ0E7QUE2REE7QUFDQTtBQUNBO0FBM0RBO0FBQ0E7QUE4REE7QUFDQTtBQUNBO0FBNURBO0FBQ0E7QUErREE7QUFDQTtBQUNBO0FBN0RBO0FBQ0E7QUFnRUE7QUFDQTtBQUNBO0FBOURBO0FBQ0E7QUFpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9EQTtBQUNBO0FBaUVBOztBQUVBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTs7OztBQUlBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUFDQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUFDQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTs7QUFFQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0RBO0FBQ0E7QUFpRUE7QUFDQTtBQS9EQTtBQUNBO0FBaUVBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQUNBO0FBQ0E7QUFDQTtBQS9EQTtBQUNBO0FDN2hCQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBN0ZOQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBOEZyQkE7QUFDQTtBQWlCQTtBQWhCQTtBQUNBO0FBa0JBO0FBQ0E7QUFkQTtBQUNBO0FBZ0JBO0F0RmdoQkE7QXNGamlCQTtBQUdBO0FBa0JBO0FBQ0E7QUFDQTtBQWRBO0FBQ0E7QUFnQkE7QUFDQTtBQWRBO0FBQ0E7QUFnQkE7QUN6Q0E7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFEQTtBQ1ZBO0FBSUE7OztBQUNBO0FBQUE7QUFHQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTs7O0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFBQTs7O0FBQ0E7QUFDQTtBQUlBO0FBRkE7OztBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBSkE7OztBQUNBO0FBQ0E7QUFRQTtBQUhBOzs7QUFDQTtBQU9BO0FBSkE7OztBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBSkE7OztBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBTEE7OztBQUNBO0FBU0E7QUFQQTs7Ozs7O0FBRUE7QUFhQTtBQVRBOzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWFBO0FBVkE7OztBQUNBO0FBY0E7QUFaQTs7O0FBQ0E7QUFDQTtBQUNBO0FBZ0JBO0FBZEE7OztBQUNBO0FBQ0E7QUFrQkE7QUFkQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFrQkE7QUFiQTs7O0FBQ0E7QUFDQTtBQUNBO0FBaUJBO0FBZkE7OztBQUNBO0FBQ0E7QUFtQkE7QUFkQTs7O0FBQ0E7QUFrQkE7QUFmQTs7O0FBQ0E7QUFtQkE7QUFoQkE7OztBQUNBO0FBb0JBO0FBakJBOzs7QUFDQTtBQXFCQTtBQUNBO0FBVEE7Ozs7Ozs7OztBQUNBO0FBbUJBO0FBQ0E7QUFmQTtBQUNBO0FBQ0E7QUFpQkE7QUFiQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBaEdwTUE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUN6QkE7OztBQUFBO0FEQUE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QTRCekJBOztBQUFBO0E4QkFBOztBQUFBO0ExREFBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FhdEJBO0FBQ0E7QW9GNEdBO0FwRjFHQTtBQUhBO0FDZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW1GaUdBO0FuRi9GQTtBQUNBO0FtRmlHQTtBbkY5RkE7QUFDQTtBbUZnR0E7QW5GN0ZBO0FBQ0E7QUFDQTtBbUYrRkE7QW5GNUZBO0FBQ0E7QW1GOEZBO0FuRnpGQTtBQUNBO0FtRjJGQTtBbkZ4RkE7QUFDQTtBQUNBO0FBQ0E7QW1GMEZBO0FBQ0E7QUFDQTtBakczSkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QWV0QkE7QUNjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWlGaUtBO0FqRi9KQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpRmlLQTtBakYvSkE7QUFDQTtBaUZpS0E7QWpGN0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpRitKQTtBakY3SkE7QUFDQTtBaUYrSkE7QWpGNUpBO0FBQ0E7QWlGOEpBO0FBQ0E7QWhGbE5BOzs7Ozs7OztBQUFBO0FDQUE7QUFTQTtBUFRBOzs7Ozs7Ozs7QUFBQTtBc0ZtREE7OztBQUFBO0FBYUE7QUFHQTtBQUNBO0FyQ3JEQTtBcUMyTUE7OztBQUFBO0FBd0ZBOztBQUFBO0FBM0RBO0FyQ3BPQTtBQUNBO0FBQ0E7QUFDQTtBcUNzT0E7QXJDak9BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxQ2tPQTtBckNoT0E7QUFDQTtBcUNrT0E7QXJDOU5BO0FBQ0E7QUFDQTtBcUNnT0E7QXJDN05BO0FBQ0E7QXFDK05BO0FyQzdOQTtBQUNBO0FxQytOQTtBckM1TkE7QUFQQTtBQVFBO0FxQytOQTtBQUNBO0FyQzVOQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBcUMwTkE7QXJDN05BO0FBUkE7QUFTQTtBcUNnT0E7QUFDQTtBckM1TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QXFDOE5BO0F6RmtRQTtBeUY3ZUE7QXJDaUJBO0FxQzhOQTtBckMzTkE7QUFDQTtBcUM2TkE7QXJDOU5BO0FBQ0E7QXFDZ09BO0FyQ2pPQTtBQUNBO0FxQ21PQTtBckNwT0E7QUFDQTtBcUNzT0E7QXJDdk9BO0FBQ0E7QXFDeU9BO0FyQzFPQTtBQUNBO0FxQzRPQTtBckM3T0E7QUFDQTtBcUMrT0E7QUFDQTtBekZ3T0E7QW9EbGRBO0FBQ0E7QXFDNk9BO0FBQ0E7QUFsUUE7QXJDaUZBO0FBQ0E7QUE4QkE7QUFNQTs7O0FBQUE7QUE0Q0E7QXFDMEdBO0FyQ3hMQTtBQUNBO0FBQ0E7QXFDMExBO0FyQ3ZMQTtBQUNBO0FBRUE7QXFDd0xBO0FyQ3RMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxQ3dMQTtBQUNBO0FyQ3BMQTtBQUNBO0FBQ0E7QXFDc0xBO0FBQ0E7QXpGa01BO0F5RnJlQTtBckNtSEE7QXFDb0xBO0FBQ0E7QXpGNkxBO0FvRHhXQTtBQUNBOzs7O0FBQUE7QXFDa0xBO0FyQ25MQTtBQUNBOzs7O0FBQUE7QXFDeUxBO0FyQzFMQTtBQUNBOzs7O0FBQUE7QXFDZ01BO0FyQ2pNQTtBQUNBOzs7O0FBQUE7QXFDdU1BO0FyQ3hNQTtBQUNBOzs7O0FBQUE7QXFDOE1BO0FyQy9NQTtBQUNBOzs7O0FBQUE7QXFDcU5BO0FyQ3ROQTtBQUNBOzs7O0FBQUE7QXFDNE5BO0FBQ0E7QXpGMElBO0FvRDdWQTtBQUNBO0FxQ3NOQTtBQUNBO0FyQzdMQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFDOExBO0FBQ0E7QXJDMUxBO0FBQ0E7QUFDQTtBcUM0TEE7QUFDQTtBckNqVkE7QUFDQTtBcUNtVkE7QXJDaFZBO0FoQ25HQTtBQUNBO0FBQ0E7QWdDb0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFDbVZBO0FyQ2pWQTtBQVpBO0FBYUE7QXFDb1ZBO0FBQ0E7QXpGbUdBO0FvRHJjQTtBRm5HQTtBQUNBO0F1Q3ljQTtBdkN2Y0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdUN5Y0E7QXZDdGNBO0FBQ0E7QUFDQTtBQUNBO0F1Q3djQTtBQUNBO0FyQzlWQTtBaEN4SEE7QUFDQTtBQUNBO0FnQ3lIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxQ2lXQTtBckMvVkE7QUFDQTtBcUNpV0E7QXJDN1ZBO0FBQ0E7QXFDK1ZBO0F6RmtFQTtBeUY1ZEE7QXJDaUxBO0FBQ0E7QUFDQTtBcUM2T0E7QXJDM09BO0FBQ0E7QUFDQTtBcUM2T0E7QXJDM09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFDNk9BO0FBQ0E7QXJDMU9BO0FBQ0E7QUFDQTtBcUM0T0E7QUFDQTtBekY0Q0E7QW9EemNBO0FBQ0E7QXFDZ2FBO0FBQ0E7QXpGdUNBO0FvRHJjQTtBaENuR0E7QUFDQTtBQUNBO0FnQ29HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxQ2thQTtBckNoYUE7QUFaQTtBQWFBO0FxQ21hQTtBQUNBO0FBQ0E7QXpGbUJBO0FvRHJjQTtBRm5H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RS85QkE7QUFDQTtBRmkrQkE7QUVsK0JBO0FBQ0E7QUZvK0JBO0FFcitCQTtBQUNBO0FGdStCQTtBRXgrQkE7QUFDQTtBRjArQkE7QUUzK0JBO0FBQ0E7QUY2K0JBO0FFOStCQTtBQUNBO0FGZy9CQTtBRWovQkE7QUFDQTtBRm0vQkE7QUVwL0JBO0FBQ0E7QUZzL0JBO0FFdi9CQTtBQUNBO0FGeS9CQTtBRTEvQkE7QUFDQTtBRjQvQkE7QUU3L0JBO0FBQ0E7QUYrL0JBO0FFaGdDQTtBQUNBO0FGa2dDQTtBRW5nQ0E7QUFDQTtBRnFnQ0E7QUV0Z0NBO0FBQ0E7QUZ3Z0NBO0FFemdDQTtBQUNBO0FGMmdDQTtBRTVnQ0E7QUFDQTtBRjhnQ0E7QUUvZ0NBO0FBQ0E7QUZpaENBO0FFbGhDQTtBQUNBO0FGb2hDQTtBRXJoQ0E7QUFDQTtBRnVoQ0E7QUV4aENBO0FBQ0E7QUYwaENBO0FFM2hDQTtBQUNBO0FGNmhDQTtBRTloQ0E7QUFDQTtBRmdpQ0E7QUVqaUNBO0FBQ0E7QUZtaUNBO0FFcGlDQTtBQUNBO0FGc2lDQTtBRXZpQ0E7QUFDQTtBRnlpQ0E7QUUxaUNBO0FBQ0E7QUY0aUNBO0FFN2lDQTtBQUNBO0FGK2lDQTtBRWhqQ0E7QUFDQTtBRmtqQ0E7QXpGOWdCQTtBeUYxSkE7QXJDakpBO0FBQ0E7QUFDQTtBcUM2ekJBO0FyQzN6QkE7QUFDQTtBQUNBO0FxQzZ6QkE7QXJDM3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxQzZ6QkE7QUFDQTtBckMxekJBO0FBQ0E7QUFDQTtBcUM0ekJBO0FBQ0E7QXpGcGlCQTtBb0R6Y0E7QUFDQTtBcUNnL0JBO0FBQ0E7QXpGemlCQTtBb0RyY0E7QWhDbkdBO0FBQ0E7QUFDQTtBZ0NvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcUNrL0JBO0FyQ2gvQkE7QUFaQTtBQWFBO0FxQ20vQkE7QUFDQTtBQUNBO0F6RjdqQkE7QW9EcmNBO0FGbkdBO0FBQ0E7QXVDeW1DQTtBdkN2bUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXVDeW1DQTtBdkN0bUNBO0FBQ0E7QUFDQTtBQUNBO0F1Q3dtQ0E7QUFDQTtBekY5a0JBO0FvRGhiQTtBaEN4SEE7QUFDQTtBQUNBO0FnQ3lIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxQ2tnQ0E7QXJDaGdDQTtBQUNBO0FxQ2tnQ0E7QUFDQTtBekY3bEJBO0FvRGxhQTtBQUNBO0FxQ2tnQ0E7QUFDQTtBekZsbUJBO0F5RjFKQTtBQVdBOzs7O0FBQUE7QUF5dkJBO0FBQ0E7QXpGM21CQTtBeUYxSkE7QUFXQTs7OztBQUFBO0FBa3dCQTtBQUNBO0F6RnBuQkE7QXlGMUpBO0FBV0E7Ozs7QUFBQTtBQTJ3QkE7QUFDQTtBekY3bkJBO0F5RjFKQTtBQVdBOzs7O0FBQUE7QUFveEJBO0FBQ0E7QUEzd0JBO0FBQ0E7QUFDQTtBQTZ3QkE7QUFDQTtBekYzb0JBO0F5Ri9IQTtBQUNBO0FBNndCQTtBQUNBO0FBendCQTtBQUNBO0FBMndCQTtBQXh3QkE7QUFDQTtBQTB3QkE7QUF2d0JBO0FBQ0E7QUF5d0JBO0FBcndCQTtBQUNBO0FBQ0E7QUF1d0JBO0FBcHdCQTtBQUNBO0FBc3dCQTtBekZocUJBO0F5RjdGQTtBQUNBO0FBZ3dCQTtBQTd2QkE7QUFDQTtBQSt2QkE7QUFDQTtBekZ4cUJBO0F5Ri9FQTtBQUNBO0FBQ0E7QUEwdkJBO0FBdnZCQTtBQUNBO0FBeXZCQTtBQUNBO0FBbnZCQTtBQUNBO0FBcXZCQTtBQWp2QkE7QUFDQTtBQUFBO0FBQ0E7QUFtdkJBO0FBQ0E7QUE5dUJBO0FuRWxmQTtBbUVtdUNBO0F6RjVyQkE7QXlGckRBO0FuRXhlQTtBbUU2dENBO0FBQ0E7QW5FenRDQTtBQUNBO0FtRTJ0Q0E7QUFDQTtBQXR2QkE7QUFDQTtBQXd2QkE7QUFDQTtBQXR2QkE7QUFDQTtBQUNBO0FBd3ZCQTtBQXR2QkE7QUFDQTtBQXd2QkE7QUFDQTtBQXJ2QkE7QUFDQTtBQUNBO0FBdXZCQTtBakdsd0NBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FDekJBOzs7QUFBQTtBREFBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0E0QnpCQTs7QUFBQTtBOEJBQTs7QUFBQTtBMENTQTs7OztBQUFBO0FBaUJBO0F0RXBCQTtBOEJtSkE7QUFDQTtBQThCQTtBQU1BOzs7QUFBQTtBQXdCQTs7Ozs7O0FBQUE7QUFvQkE7QXdDcElBO0E1RnVjQTtBNEZuaEJBO0F0RVZBO0FzRTBGQTtBQUNBO0F0RXRGQTtBQUNBO0FzRXdGQTtBeEM4Q0E7QUFDQTtBQUNBO0F3QzVDQTtBeEMrQ0E7QUFDQTtBQUVBO0F3QzlDQTtBeENnREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0M5Q0E7QUFDQTtBeENrREE7QUFDQTtBQUNBO0F3Q2hEQTtBQUNBO0E1RndhQTtBNEZuaEJBO0F4Q2lLQTtBd0NsREE7QUFDQTtBNUZtYUE7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0MvRUE7QUFDQTtBNUYwWkE7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0N0RUE7QUFDQTtBNUZpWkE7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0M3REE7QUFDQTtBNUZ3WUE7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0NwREE7QUFDQTtBNUYrWEE7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0MzQ0E7QUFDQTtBNUZzWEE7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0NsQ0E7QUFDQTtBNUY2V0E7QTRGbmhCQTtBeEN1TUE7Ozs7QUFBQTtBd0N6QkE7QUFDQTtBeENrQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F3Q2pDQTtBQUNBO0F4Q3FDQTtBQUNBO0FBQ0E7QXdDbkNBO0FBQ0E7QXhDbEhBO0FBQ0E7QXdDb0hBO0F4Q2pIQTtBaENuR0E7QUFDQTtBQUNBO0FnQ29HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F3Q29IQTtBeENsSEE7QUFaQTtBQWFBO0F3Q3FIQTtBQUNBO0E1RmtVQTtBb0RyY0E7QUZuR0E7QUFDQTtBMEMwT0E7QTFDeE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTBDME9BO0ExQ3ZPQTtBQUNBO0FBQ0E7QUFDQTtBMEN5T0E7QUFDQTtBeEMvSEE7QWhDeEhBO0FBQ0E7QUFDQTtBZ0N5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0NrSUE7QXhDaElBO0FBQ0E7QXdDa0lBO0F4QzlIQTtBQUNBO0F3Q2dJQTtBQXJPQTtBQUNBO0FBQ0E7QUF1T0E7QXBHaFJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FxR3JCQTs7O0FBQUE7QUFLQTs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QXZFVkE7QXVFdURBO0E3RmdmQTtBNkYvaEJBO0F2RUVBO0F1RWlEQTtBQUNBO0F2RTdDQTtBQUNBO0F1RStDQTtBQWxEQTtBQUNBO0FBb0RBO0E3RnFlQTtBNkZyaEJBO0FBR0E7QUFBQTtBQWlEQTtBQS9DQTtBQUNBO0FBaURBO0FBOUNBO0FBQ0E7QUFDQTtBQWdEQTtBQUNBO0E3RnlkQTtBNkZwZ0JBO0FBRUE7QUFBQTtBQTZDQTtBQUNBO0E3Rm9kQTtBNkY3ZkE7QUFDQTtBQUFBO0FBNENBO0FBQ0E7QUF6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBMkNBO0FyR3BHQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBc0duQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4RUxBO0F3RXlDQTtBOUY4ZkE7QThGdmlCQTtBeEVVQTtBd0VtQ0E7QUFDQTtBeEUvQkE7QUFDQTtBd0VpQ0E7QXRHdkRBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0F1R1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFIQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFIQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFIQTtBQUNBO0FBS0E7QUFIQTtBQUNBO0FBQ0E7QUFLQTtBQUhBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFMQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBTEE7QUFDQTtBQU9BO0FBQ0E7QUFMQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBTEE7QUFDQTtBQU9BO0FBQ0E7QUFMQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBQ0E7QUFSQTtBQVdBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBWUE7O0FBRUE7QUFWQTtBQWFBO0FBQ0E7QUFDQTtBQVhBO0FBY0E7QUFDQTtBQVpBO0FBY0E7QUFDQTtBQVpBO0FBZ0JBO0FBQ0E7QUFDQTtBQWRBO0FBQ0E7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFrQkE7QUFDQTtBQWhCQTtBQW1CQTtBQUNBO0FBakJBO0FBQ0E7QUFxQkE7QUFDQTtBQW5CQTtBQUNBO0FBcUJBO0FBQ0E7QUFDQTtBQW5CQTtBQUNBO0FBcUJBO0FBQ0E7QUFDQTtBQW5CQTtBQUNBO0FBcUJBO0FBQ0E7QUFDQTtBQW5CQTtBQUNBO0FBcUJBO0FBQ0E7QUFDQTtBQW5CQTtBQUNBO0FBcUJBO0FBQ0E7QUFuQkE7QUFDQTtBQXFCQTtBQUNBO0FBbkJBO0FBQ0E7QUFxQkE7QUFDQTtBQW5CQTtBQUNBO0FBcUJBO0FBQ0E7QUFuQkE7QUFDQTtBQXFCQTtBQUNBO0FBQ0E7QUFuQkE7QUFDQTtBQXFCQTtBQUNBO0FBQ0E7QUFuQkE7QUFDQTtBQXNCQTtBQUNBO0FBcEJBO0FBc0JBO0FBQ0E7QUFwQkE7QUF1QkE7QUFDQTtBQXJCQTtBQXVCQTtBQUNBO0FBQ0E7QUFyQkE7QUF3QkE7QUFDQTtBQXRCQTtBQXlCQTtBQUNBO0FBdkJBO0FBMkJBO0FBQ0E7QUF6QkE7QUFDQTtBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBMUJBO0FBQ0E7QUE2QkE7QUFDQTtBQUNBO0FBM0JBO0FBQ0E7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBM0JBO0FBQ0E7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNCQTtBQTZCQTtBQUNBO0FBM0JBO0FBQ0E7QUE4QkE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFyQkE7QXZHalZBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FpQnpCQTs7Ozs7Ozs7QUFBQTtBQ0FBO0FBU0E7QVBUQTs7Ozs7Ozs7O0FBQUE7QVhBQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBaUJ6QkE7Ozs7Ozs7O0FBQUE7QUNBQTtBQVNBO0FQVEE7Ozs7Ozs7OztBQUFBO0EwQkFBO0FBbURBO0FDV0E7QWtFbkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFpRUE7QUEvREE7QUFDQTtBQUNBO0FBaUVBO0FoR3lkQTtBZ0c1aEJBO0FBS0E7QUFDQTtBQWtFQTtBQUNBO0FoR21kQTtBZ0dsaUJBO0FBaUJBO0FBa0VBO0FBQ0E7QUEvREE7QUFDQTtBQWlFQTtBQTlEQTtBcEZ1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QW9GTUE7QXBGZ0VBO0FBQ0E7QUFDQTtBQUNBO0FvRjlEQTtBcEZpRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FvRi9FQTtBcEZpRkE7QUFDQTtBQUNBO0FvRi9FQTtBcEZ1SEE7QUFFQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QW9GcElBO0FwRnNJQTtBQUNBO0FBQ0E7QW9GcElBO0FwRnlLQTtBQUNBO0FBQ0E7QW9GdktBO0FBMUdBO0FBQ0E7QUE0R0E7QWhHc1pBO0FnR25nQkE7QUFJQTtBQTZHQTtBQUNBO0FBekdBO0FwRmtSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBb0Z0S0E7QUEzR0E7QWxFcUpBO0FBQ0E7QUFDQTtBQUNBO0FrRXZDQTtBQTVHQTtBQUNBO0FBQ0E7QUE4R0E7QXhHL0tBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FpQnpCQTs7Ozs7Ozs7QUFBQTtBQ0FBO0FBU0E7QVBUQTs7Ozs7Ozs7O0FBQUE7QVhBQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQ3pCQTs7O0FBQUE7QURBQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBaUJ6QkE7Ozs7Ozs7O0FBQUE7QUNBQTtBQVNBO0FQVEE7Ozs7Ozs7OztBQUFBO0EwQkFBO0FBbURBO0FDV0E7QXRDOURBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FTekJBO0FBWUE7QVRaQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBNEJ6QkE7O0FBQUE7QTZFdURBO0FBSUE7QUFpR0E7QWpHaVpBO0FrR3RnQkE7QUFFQTtBQUNBO0FBQ0E7QUR1SEE7QUNySEE7QUFFQTtBRHNIQTtBQUNBO0FDbEhBO0FBQ0E7QURvSEE7QUNqSEE7QUFDQTtBRG1IQTtBakdpWUE7QWtHcmZBO0FBTUE7QUFpQkE7QURrR0E7QUFDQTtBakcyWEE7QWtHcmZBO0FBTUE7QUFxQkE7QURvR0E7QUFDQTtBakdxWEE7QWtHcmZBO0FBTUE7QUQ4SEE7QUFDQTtBakdnWEE7QWtHcmZBO0FBTUE7QURtSUE7QUFDQTtBakcyV0E7QWtHcmZBO0FBTUE7QUR3SUE7QUFDQTtBQzdHQTtBQUNBO0FEK0dBO0FqR21XQTtBa0duZEE7QUFNQTtBQUdBO0FENEdBO0FBQ0E7QWpHNlZBO0FrR25kQTtBQU1BO0FBT0E7QUQ4R0E7QUFDQTtBakd1VkE7QWtHbmRBO0FBTUE7QUQwSEE7QUFDQTtBakdrVkE7QWtHbmRBO0FBTUE7QUQrSEE7QUFDQTtBakc2VUE7QWtHbmRBO0FBTUE7QURvSUE7QUFDQTtBQ3ZIQTtB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QTtBQUNBO0FBQ0E7QUZrTUE7QUUvTEE7QUFDQTtBRmlNQTtBRTlMQTs7QUFFQTtBRmdNQTtBQUNBO0EzR2dSQTtBMkc3WEE7QXhHcEtBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBd0dzUkE7QUF0SEE7QUFDQTtBQUNBO0FBd0hBO0FBQ0E7QTNHNlBBO0EyRzFXQTtBeEd2TEE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0F3R3lTQTtBQXZIQTtBQUNBO0FBeUhBO0FBdEhBOztBQUVBO0FBQ0E7QUFDQTtBQXdIQTtBQUNBO0FBbkhBOztBRS9HQTtBQUNBO0FBQ0E7QUFDQTtBRnNPQTtBM0c4TkE7QTJHcFZBOztBRTVNQTtBQUNBO0FBQ0E7QUZ1VUE7QUVyVUE7O0FBQ0E7QUZ3VUE7QUVyVUE7O0ExR1RBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBd0dtVkE7QUUvVUE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUZrVkE7QUVoVkE7O0FBQ0E7QUZtVkE7QUVoVkE7O0FBQ0E7QUZtVkE7QUFDQTtBM0dxTEE7QTZHcmdCQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUZtVkE7QUFDQTtBM0cwS0E7QTZHemZBOztBQUVBO0FGa1ZBO0FBQ0E7QTNHb0tBO0E2R3BmQTs7QTFHN0NBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBd0dtWUE7QUFDQTtBM0dvSkE7QTZHNWVBOztBQUNBO0FGNFZBO0FFMVZBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRjZWQTtBRTFWQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUY2VkE7QUUxVkE7O0FBQ0E7QUY2VkE7QUUxVkE7Ozs7QUFFQTtBRjhWQTtBQUNBO0FBQ0E7QUE1TkE7QW5IaE9BOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FpQnpCQTs7Ozs7Ozs7QUFBQTtBQ0FBO0FBU0E7QVBUQTs7Ozs7Ozs7O0FBQUE7QTJHdUNBO0FBR0E7QUFDQTtBQUNBO0FBV0E7QTlHc2ZBO0E4R3RnQkE7QUFRQTtBQUdBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFQQTtBQUNBO0FBU0E7QTlHMmVBO0E4R3JmQTtBQUlBO0FBQ0E7QUFVQTtBQVJBO0FBQ0E7QUFVQTtBQVBBO0FBQ0E7QUFTQTtBQUNBO0E5RytkQTtBOEduZUE7QUFHQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBTUE7QUFDQTtBQUNBO0FBSkE7QTlHOGNBO0E4R3ZjQTtBQUdBO0FBTkE7QUFDQTtBQVNBO0FBQ0E7QUFQQTtBQVdBO0FsR3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBa0dXQTtBbEdvQkE7QUFFQTtBa0duQkE7QWxHd0RBO0FBQ0E7QUFDQTtBQUNBO0FrR3REQTtBbEd5REE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FrR3ZFQTtBbEd5RUE7QUFDQTtBQUNBO0FrR3ZFQTtBbEcrR0E7QUFFQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QWtHNUhBO0FsRzhIQTtBQUNBO0FBQ0E7QWtHNUhBO0FsR2lLQTtBQUNBO0FBQ0E7QWtHL0pBO0FBcENBO0FsRzRSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBeUJBO0FBQ0E7QWtHelRBO0FBQ0E7QUEyQ0E7QUF2Q0E7QWxHa01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaUNBO0FBY0E7QWtHck1BO0FBQ0E7QUN0TEE7QUFDQTtBQUNBO0FEd0xBO0FBQ0E7QXRIM0xBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0F3SGJBO0FBQ0E7QUFHQTtBRjZNQTtBRTFNQTtBQUNBO0FBQ0E7QUY0TUE7QUV6TUE7QUFDQTtBQUNBO0FGMk1BO0E5R3dVQTtBZ0hyaEJBO0FBSUE7QUY2TUE7QUFDQTtBQUNBO0F0SDNPQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBQXpCQTs7QUFBQTtBQ0FBOzs7QUFBQTtBRHlCQTs7QUFBQTtBNEJ6QkE7O0FBQUE7QTZGQUE7QUFZQTtBQ0dBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBSjJSQTtBSXZSQTtBQUVBO0FKd1JBO0FJdFJBO0FBQ0E7QUp3UkE7QUlyUkE7QUFDQTtBSnVSQTtBSWxSQTtBOUZyQ0E7QUFDQTtBQUNBO0ErRkdBO0FBR0E7QUxzVEE7QUlyUkE7QUFDQTtBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBSUE7QUw4UkE7QUs1UkE7QUFDQTtBQUNBO0FMOFJBO0FLM1JBO0FBQ0E7QUFDQTtBTDZSQTtBSWpTQTtBQzZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMdVFBO0FLclFBO0FBRUE7QUFDQTtBTHNRQTtBS25RQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FMbVFBO0FJeFRBO0FBQ0E7QUowVEE7QUs3UEE7QUFJQTtBQUNBO0FBQ0E7QUw0UEE7QUkxVEE7OztBQUdBO0FBQ0E7QUo0VEE7QUFDQTtBSXRUQTs7QUFFQTtBQUNBO0FBQ0E7QUp3VEE7QUlyVEE7QUFDQTtBSnVUQTtBSXBUQTtBQUNBO0FKc1RBO0FBQ0E7QXRIMVlBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FBekJBOztBQUFBO0FDQUE7OztBQUFBO0FEeUJBOztBQUFBO0FpQnpCQTs7Ozs7Ozs7QUFBQTtBQ0FBO0FBU0E7QVBUQTs7Ozs7Ozs7O0FBQUE7QTBCQUE7QUFtREE7QUNXQTtBdEM5REE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QTRCekJBOztBQUFBO0E2RkFBO0FBWUE7QUdZQTtBQWdCQTs7QUFBQTtBQXlCQTs7QUFBQTtBTm9iQTtBTTFkQTtBQUNBO0FBR0E7QU4wZEE7QU10ZEE7QUFDQTtBQUNBO0FOd2RBO0FNbGRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTm9kQTtBTWpkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTm1kQTtBTWhkQTtBQUNBO0FBQ0E7QU5rZEE7QU01Y0E7QWhHL0RBO0FBQ0E7QUFDQTtBK0ZHQTtBQUdBO0FMMGdCQTtBTS9jQTtBRDFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBSUE7QUxpZkE7QUsvZUE7QUFDQTtBQUNBO0FMaWZBO0FLOWVBO0FBQ0E7QUFDQTtBTGdmQTtBTTNkQTtBRElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUwwZEE7QUt4ZEE7QUFFQTtBQUNBO0FMeWRBO0FLdGRBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUxzZEE7QUs3Y0E7QUFJQTtBQUNBO0FBQ0E7QUw0Y0E7QU1sZkE7QUFDQTtBTm9mQTtBTWpmQTtBQUNBO0FObWZBO0FNaGZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTmtmQTtBTS9lQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FOaWZBO0FNL2VBO0FBQ0E7QU5pZkE7QU05ZUE7QUFHQTtBTjhlQTtBQUNBO0F0SGhtQkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QUF6QkE7O0FBQUE7QUNBQTs7O0FBQUE7QUR5QkE7O0FBQUE7QTRCekJBOztBQUFBO0E2RkFBO0FBWUE7QUlTQTtBQUdBO0FBR0E7QVAwb0JBO0FPdm9CQTtBQUNBO0FBQ0E7QVB5b0JBO0FPdG9CQTtBakc5QkE7QUFDQTtBQUNBO0ErRkdBO0FBR0E7QUxtcUJBO0E5R25JQTtBcUgxZ0JBO0FBRUE7QVArb0JBO0FBQ0E7QU8xb0JBO0FGYkE7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUlBO0FMK29CQTtBSzdvQkE7QUFDQTtBQUNBO0FMK29CQTtBSzVvQkE7QUFDQTtBQUNBO0FMOG9CQTtBT3RwQkE7QUZpQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRTNDQTtBQUNBO0FBQ0E7QVBvcUJBO0FLem5CQTtBQUVBO0FBQ0E7QUwwbkJBO0FLdm5CQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FMdW5CQTtBSzltQkE7QUFJQTtBQUNBO0FBQ0E7QUw2bUJBO0FPNXFCQTtBQUNBO0FQOHFCQTtBTzVxQkE7QUFDQTtBQUNBO0FQOHFCQTtBTzNxQkE7QUFDQTtBQUNBO0FQNnFCQTtBTzFxQkE7QUFDQTtBUDRxQkE7QU96cUJBO0FBQ0E7QVAycUJBOyIsInNvdXJjZVJvb3QiOiIifQ==*/